2009-07-17 2 views
5

Я использую QT4 и динамически добавляю записи в QMenu. Можно ли сортировать записи в QMenu, не удаляя их и не создавая новый?Qt4 QMenu сортировка товаров

Первоначально предполагалось, что есть функция для вставки в определенном месте, чтобы я мог сортировать по вставке, но я не смог ее найти.

ответ

6

После добавления, я не думаю, что вы можете изменить порядок. Пока вы создаете, хотя можете использовать метод QWidget::insertAction, чтобы разместить его именно там, где вы хотите.

void QWidget::insertAction (QAction * before, QAction * action) 

В противном случае вы можете использовать QWidget::addActions. Создайте свой список действий и отсортируйте его перед добавлением в QMenu.

void QWidget::addActions (QList<QAction *> actions) 
1

В одном из моих кодов я сохраняю QActions в отдельный список и генерирую меню и подменю по запросу. В теории я могу добавить «вес» к предметам и вернуть их повторно, но я еще не реализовал это.

страница проекта доступна здесь: http://code.google.com/p/qtedit4/wiki/qmdilib

Пожалуйста, обратите внимание, что действия QWidgetQMenu) сохраняются в виде QList, который может быть «читать», используя QWidget::actions(). Помните, что список скопирован, поэтому вы можете изменять действия, но не сам список. (Надеюсь, я не ошибаюсь ...)

Смежные вопросы