![]() |
|
![]() ![]() ![]() |
|
kuvshinka |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 386 Регистрация: 27.4.2008 Репутация: нет Всего: нет |
привет всем знатокам кути!!!
подскажите плиз как программно реализовать всплывающее меню на кнопке (появляется по щелчку на кнопке около нее) с несколькими подменю (с возможностью простановки галочки у выбранного подменю)? Типа того: кнопка1->меню1 ->подменю1 ->подменю2 ->меню2 ->подменю1 ->меню3 ->подменю1 ->подменю2 ->подменю3 и как задавать обработчики событий для этих подменюшек? |
|||
|
||||
SABROG |
|
|||
![]() Hacker ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2481 Регистрация: 18.9.2006 Репутация: 81 Всего: 91 |
||||
|
||||
kuvshinka |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 386 Регистрация: 27.4.2008 Репутация: нет Всего: нет |
а примерчик ?
неужели всплывающие меню делаются через QMenu? я думала есть что-нить типа QPopupMenu... Это сообщение отредактировал(а) kuvshinka - 20.3.2010, 00:45 |
|||
|
||||
SABROG |
|
|||
![]() Hacker ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2481 Регистрация: 18.9.2006 Репутация: 81 Всего: 91 |
||||
|
||||
djamshud |
|
|||
![]() Пердупержденный ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1655 Регистрация: 23.11.2009 Репутация: 5 Всего: 39 |
Создавайте QMenu, забивайте ее как заблагорассудится, связывайте сигналы забитых в него QAction-ов с вашими обработчиками, вызывайте на кнопке setMenu и наслаждайтесь. Как забивать менюшку есть в разделе ассистента, посвященном QMenu.
Поддерживаю предыдущего оратора. Милая барышня, читайте документацию, там все есть и даже примеры. -------------------- 'Cuz I never walk away from what I know is right Alice Cooper - Freedom |
|||
|
||||
kuvshinka |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 386 Регистрация: 27.4.2008 Репутация: нет Всего: нет |
допустим меню такое:
так как же мне все-таки сделать обработчики для Item 1 и Item 2 по клику на них мышкой с установкой галки у выбранного подменю? и можно ли сделать этот список менюшек выпадающим, допустим, справа или слева от кнопки (не вниз)? Это сообщение отредактировал(а) kuvshinka - 20.3.2010, 01:20 |
|||
|
||||
SABROG |
|
||||
![]() Hacker ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2481 Регистрация: 18.9.2006 Репутация: 81 Всего: 91 |
Не вызывать setMenu(), а на нажатие вызывать статический метод QMenu::exec() передав нужный координаты.
Читайте описание класса QAction. |
||||
|
|||||
kuvshinka |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 386 Регистрация: 27.4.2008 Репутация: нет Всего: нет |
![]() 1. подскажите пож-та какие параметры надо задавать вместо ??? (по описанию exec первый параметр нада задать какой-то action - но мне то надо все меню menu...):
2. так как же все-таки программно добраться до пунктов подменю Item 1 и Item 2, если указатель есть только на само меню m3? для коннекта какой надо использовать сигнал - changed ? и желательно иметь возможность работать с менюшками Item 1 и Item 2 как с массивом (потому как каждое из этих меню (их будет поболее, чем два) является выбираемым пользователем неким значением)... дайте примерчик пож-та - по примеру намного быстрее можно разобраться что к чему...... Это сообщение отредактировал(а) kuvshinka - 21.3.2010, 00:18 |
|||
|
||||
kuvshinka |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 386 Регистрация: 27.4.2008 Репутация: нет Всего: нет |
уже устала тыкаться с этими менюшками...вот например в билдере - взял компонент MainMenu, а лучше PopupMenu, вручную сформировал его состав, щелкнул по нужному пункту меню и получил его обработчик событий....а в кути....подскажите пож-та примером (см. сообщение выше)...
|
|||
|
||||
kuvshinka |
|
||||||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 386 Регистрация: 27.4.2008 Репутация: нет Всего: нет |
с меню вроде разобралась:
это все верно получилось... вопрос теперь в следующем: каким оптимальным образом можно получить значение (записать его в переменную, например perem) выбранного пункта "10" (perem=10), "15" (perem=15), "27", "48" или "64" меню "меню1"? можно конечно так
но тогда придется делать аж 5 коннектов (для каждого sbm_i) и 5 своих слотов....что не есть хорошо и оптимально... пробовала через QActionGroup:
а какой будет тогда коннект? то есть желательно все сделать через один слот, но как тогда узнать какой именно пункт меню (sbm1... sbm5) был выбран? подскажите пож-та программную реализацию этого действия... и еще по поводу
Это сообщение отредактировал(а) kuvshinka - 21.3.2010, 18:53 |
||||||||
|
|||||||||
kuvshinka |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 386 Регистрация: 27.4.2008 Репутация: нет Всего: нет |
неужели никто не работал с QActionGroup и методом exec у QMenu? подскажите как с ними правильно работать...
|
|||
|
||||
kuvshinka |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 386 Регистрация: 27.4.2008 Репутация: нет Всего: нет |
товарищи, ну подскажите как с этими QActionGroup и QMenu.exec правильно управляться... см. мое пред-предыдущее сообщение...
|
|||
|
||||
SABROG |
|
||||||||
![]() Hacker ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2481 Регистрация: 18.9.2006 Репутация: 81 Всего: 91 |
void QAction::setData ( const QVariant & userData )
|
||||||||
|
|||||||||
kuvshinka |
|
||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 386 Регистрация: 27.4.2008 Репутация: нет Всего: нет |
SABROG : спасибочки бальшое...теперь буду знать...
а каким образом можно в цикле добавить ку-экшены к меню
а затем уже их (тоже в цикле) добавить к action-группе:
а то прописывать действия для каждого объекта - как-то не очень хорошо.... |
||||
|
|||||
SABROG |
|
|||
![]() Hacker ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2481 Регистрация: 18.9.2006 Репутация: 81 Всего: 91 |
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |