Russian Qt Forum
Ноябрь 25, 2024, 18:34 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Использование в QToolButton режима MenuButtonPopup  (Прочитано 7395 раз)
dr_Begemot
Гость
« : Апрель 23, 2009, 14:09 »

Как в QToolButton при использовании режима MenuButtonPopup создать и добавить выпадающее меню?
Хорошо бы наглядный пример)

Спасибо)
Записан
spirit
Гость
« Ответ #1 : Апрель 23, 2009, 14:19 »

добавь меню используя QToolButton::setMenu.
Записан
dr_Begemot
Гость
« Ответ #2 : Апрель 23, 2009, 14:23 »

добавь меню используя QToolButton::setMenu.

Это я догадался... А как создать само меню?
Записан
spirit
Гость
« Ответ #3 : Апрель 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.
« Последнее редактирование: Апрель 23, 2009, 14:29 от spirit » Записан
dr_Begemot
Гость
« Ответ #4 : Апрель 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?
Записан
spirit
Гость
« Ответ #5 : Апрель 23, 2009, 14:42 »

из доки
Цитировать
...
The action's triggered() signal is connected to the member slot of the receiver object.
...
т.е. сигнал triggered() вызовет слот объекта receiver.
Записан
dr_Begemot
Гость
« Ответ #6 : Апрель 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(слот объекта)?
Записан
spirit
Гость
« Ответ #7 : Апрель 23, 2009, 14:48 »

да, имя слота.
Записан
dr_Begemot
Гость
« Ответ #8 : Апрель 24, 2009, 09:40 »

да, имя слота.

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

Какой connect для этого надо сделать?
Записан
Racheengel
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2679


Я работал с дискетам 5.25 :(


Просмотр профиля
« Ответ #9 : Апрель 24, 2009, 10:56 »

для этого юзай QActionGroup.
Записан

What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.

COVID не волк, в лес не уйдёт
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.114 секунд. Запросов: 23.