![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
Litkevich Yuriy |
![]()
Сообщение
#1
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
Не могу понять как создать вложенное действие (подменю)
Есть указатель на QAction, например: Нужно что бы функция сделала, для входного "действия" выпадающее меню с пунктом newaction и вернула указатель на "действие" ассоциированное с этим пунктом.Схема меню: пункт1 пункт2 action.text() > newaction пункт3 где: action.text() - существующий пункт меню, к которому требуется добавить подменю newaction - вновь созданный пункт подменю |
|
|
![]() |
Litkevich Yuriy |
![]()
Сообщение
#2
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
значит можно удалить QAction, а вместо него вставить QMenu и наоборот если надо. А удалить QAction - значит удалить пункт не только, ещё и те объекты которые прицеплены к его сигналам, могут стать глухими.Вроде бы первично QMenu. поидее и QMenu имеет ассоциированный с ним QAction, и является визуальным контейнером QAction'ов. И пункт на панели меню - тоже QAction. Т.е. QAction всему голова. Однако иерархию построить невозможно.Вообще понадобилась относительно простая вещь. Плагины возвращают строку такого вида: "Правка/Копировать" "Правка/Вставить" "Настройки/Модули/Редактор" И т.п. плагины могут быть как дочерним окном в MDI, соответственно менюхи должны перестраиваться в зависимости от активного окна. Также плагины могут быть не визуальными но содержать диалоги, поэтому для доступа к диалогам, они просят главное окно создать цепочку пунктов меню. Если часть цепочки существует, то туда просто, что-то добавляется. Если бы QAction был полноценным классом, эту идею можно было бы довольно легко реализовать. |
|
|
![]() ![]() ![]() |
![]() |
Текстовая версия | Сейчас: 11.3.2025, 10:57 |