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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: QAction на QToolBar-e как меню  (Прочитано 6137 раз)
juvf
Программист
*****
Offline Offline

Сообщений: 570


Просмотр профиля
« : Март 07, 2015, 11:36 »

Есть QToolBar и на нем несколько кнопок QAction. Как можно сделать, чтоб по одной кнопке не вызывался сигнал triggered(), разворачивалось подменю?

Точнее, хочу смену языка сделать через кнопку на тулбаре, чтоб вызывалось подменю и в нем несколько строк с языком и текущий подсвечен/выбран. Аналог в QtCreator безымянная кнопка над кнопками Run, Start debugging. см рис. По этой кнопке выбирается релиз или отладка.
Записан
Johnik
Крякер
****
Offline Offline

Сообщений: 339


Просмотр профиля
« Ответ #1 : Март 07, 2015, 11:55 »

Можно сделать с помощью кнопки:
Код
C++ (Qt)
void QToolButton::setMenu(QMenu * menu)
Записан
juvf
Программист
*****
Offline Offline

Сообщений: 570


Просмотр профиля
« Ответ #2 : Март 07, 2015, 12:15 »

Можно сделать с помощью кнопки:
Код
C++ (Qt)
void QToolButton::setMenu(QMenu * menu)
Со свойством QToolButton::setPopupMode(QToolButton::InstantPopup) - то, что нужно. Спасибо!
Записан
__Heaven__
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2130



Просмотр профиля
« Ответ #3 : Март 07, 2015, 14:30 »

У меня есть вопрос по теме.

Как сделать это же меню, но только с действием по умолчанию. И чтобы последнее выбранное в меню действие становилось действием по умолчанию?
Записан
torwig
Самовар
**
Offline Offline

Сообщений: 134



Просмотр профиля
« Ответ #4 : Март 07, 2015, 14:32 »

Запоминать это самое действие в QSettings, файле, БД и т.п. а потом вручную выставлять?
Записан
__Heaven__
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2130



Просмотр профиля
« Ответ #5 : Март 07, 2015, 14:35 »

Ок. Это понятно.
Больше интересует, чтобы по нажатию срабатывало действие по умолчанию, а не вызывалось меню
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #6 : Март 07, 2015, 14:41 »

Ок. Это понятно.
Больше интересует, чтобы по нажатию срабатывало действие по умолчанию, а не вызывалось меню
Напр в меню маркируете действие с помощью setChecked. Перекрываете mousePress, если нажат Ctl или правый клик - выпадает меню. Иначе QAction которая checked   
Записан
__Heaven__
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2130



Просмотр профиля
« Ответ #7 : Март 07, 2015, 17:23 »

Неет. Меня интересует кнопка, сопряженная со стрелочкой вниз. Как в креаторе кнопка commit
Записан
Johnik
Крякер
****
Offline Offline

Сообщений: 339


Просмотр профиля
« Ответ #8 : Март 07, 2015, 18:11 »

Неет. Меня интересует кнопка, сопряженная со стрелочкой вниз. Как в креаторе кнопка commit
тогда вам сюда:
Код
C++ (Qt)
void QPushButton::setMenu(QMenu * menu)
Записан
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #9 : Март 07, 2015, 20:28 »

__Heaven__, Открой демонстрацию MinWindow, там есть то, что тебе надо.
Записан

Юра.
__Heaven__
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2130



Просмотр профиля
« Ответ #10 : Март 07, 2015, 21:01 »

Спасибо
Записан
juvf
Программист
*****
Offline Offline

Сообщений: 570


Просмотр профиля
« Ответ #11 : Март 09, 2015, 18:20 »

Код:
 QToolButton::setPopupMode(QToolButton::MenuButtonPopup);
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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