Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: dr_Begemot от Апрель 23, 2009, 14:09



Название: Использование в QToolButton режима MenuButtonPopup
Отправлено: dr_Begemot от Апрель 23, 2009, 14:09
Как в QToolButton при использовании режима MenuButtonPopup создать и добавить выпадающее меню?
Хорошо бы наглядный пример)

Спасибо)


Название: Re: Использование в QToolButton режима MenuButtonPopup
Отправлено: spirit от Апрель 23, 2009, 14:19
добавь меню используя QToolButton::setMenu.


Название: Re: Использование в QToolButton режима MenuButtonPopup
Отправлено: dr_Begemot от Апрель 23, 2009, 14:23
добавь меню используя QToolButton::setMenu.

Это я догадался... А как создать само меню?


Название: Re: Использование в QToolButton режима MenuButtonPopup
Отправлено: spirit от Апрель 23, 2009, 14:26
мда.
Код
C++ (Qt)
...
QMenu *menu = new QMenu(tr("Menu"), this);
menu->addAction(tr("1"));
menu->addAction(tr("2"));
menu->addAction(tr("3"));
menu->addAction(tr("4"));
 
QToolButton *tb = new QToolButton(this);
tb->setMenu(menu);
...
 
так же можешь в дизайнере поиграться.
так же можно добавлять просто QAction используя addAction.


Название: Re: Использование в QToolButton режима MenuButtonPopup
Отправлено: dr_Begemot от Апрель 23, 2009, 14:38
мда.
Код
C++ (Qt)
...
QMenu *menu = new QMenu(tr("Menu"), this);
menu->addAction(tr("1"));
menu->addAction(tr("2"));
menu->addAction(tr("3"));
menu->addAction(tr("4"));
 
QToolButton *tb = new QToolButton(this);
tb->setMenu(menu);
...
 
так же можешь в дизайнере поиграться.
так же можно добавлять просто QAction используя addAction.

A что такое  const QObject *receiver в параметрах addAction?


Название: Re: Использование в QToolButton режима MenuButtonPopup
Отправлено: spirit от Апрель 23, 2009, 14:42
из доки
Цитировать
...
The action's triggered() signal is connected to the member slot of the receiver object.
...
т.е. сигнал triggered() вызовет слот объекта receiver.


Название: Re: Использование в QToolButton режима MenuButtonPopup
Отправлено: dr_Begemot от Апрель 23, 2009, 14:47
из доки
Цитировать
...
The action's triggered() signal is connected to the member slot of the receiver object.
...
т.е. сигнал triggered() вызовет слот объекта receiver.

т.е. в параметре member const char* member должно быть SLOT(слот объекта)?


Название: Re: Использование в QToolButton режима MenuButtonPopup
Отправлено: spirit от Апрель 23, 2009, 14:48
да, имя слота.


Название: Re: Использование в QToolButton режима MenuButtonPopup
Отправлено: dr_Begemot от Апрель 24, 2009, 09:40
да, имя слота.

Возник вопрос при перехвате QAction... вот если во всплывающем меню выбран какой-то пункт, то можно ли получить его номер, а не указатель на QAction?

Какой connect для этого надо сделать?


Название: Re: Использование в QToolButton режима MenuButtonPopup
Отправлено: Racheengel от Апрель 24, 2009, 10:56
для этого юзай QActionGroup.