Сортировка элементов Qt4 QMenu

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

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


person Drakonite    schedule 17.07.2009    source источник


Ответы (2)


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

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

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

void QWidget::addActions ( QList<QAction *> actions )
person Jesse Vogt    schedule 17.07.2009

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

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

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

person elcuco    schedule 25.08.2009