Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: juvf от Март 07, 2015, 11:36



Название: QAction на QToolBar-e как меню
Отправлено: juvf от Март 07, 2015, 11:36
Есть QToolBar и на нем несколько кнопок QAction. Как можно сделать, чтоб по одной кнопке не вызывался сигнал triggered(), разворачивалось подменю?

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


Название: Re: QAction на QToolBar-e как меню
Отправлено: Johnik от Март 07, 2015, 11:55
Можно сделать с помощью кнопки:
Код
C++ (Qt)
void QToolButton::setMenu(QMenu * menu)


Название: Re: QAction на QToolBar-e как меню
Отправлено: juvf от Март 07, 2015, 12:15
Можно сделать с помощью кнопки:
Код
C++ (Qt)
void QToolButton::setMenu(QMenu * menu)
Со свойством QToolButton::setPopupMode(QToolButton::InstantPopup) - то, что нужно. Спасибо!


Название: Re: QAction на QToolBar-e как меню
Отправлено: __Heaven__ от Март 07, 2015, 14:30
У меня есть вопрос по теме.

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


Название: Re: QAction на QToolBar-e как меню
Отправлено: torwig от Март 07, 2015, 14:32
Запоминать это самое действие в QSettings, файле, БД и т.п. а потом вручную выставлять?


Название: Re: QAction на QToolBar-e как меню
Отправлено: __Heaven__ от Март 07, 2015, 14:35
Ок. Это понятно.
Больше интересует, чтобы по нажатию срабатывало действие по умолчанию, а не вызывалось меню


Название: Re: QAction на QToolBar-e как меню
Отправлено: Igors от Март 07, 2015, 14:41
Ок. Это понятно.
Больше интересует, чтобы по нажатию срабатывало действие по умолчанию, а не вызывалось меню
Напр в меню маркируете действие с помощью setChecked. Перекрываете mousePress, если нажат Ctl или правый клик - выпадает меню. Иначе QAction которая checked   


Название: Re: QAction на QToolBar-e как меню
Отправлено: __Heaven__ от Март 07, 2015, 17:23
Неет. Меня интересует кнопка, сопряженная со стрелочкой вниз. Как в креаторе кнопка commit


Название: Re: QAction на QToolBar-e как меню
Отправлено: Johnik от Март 07, 2015, 18:11
Неет. Меня интересует кнопка, сопряженная со стрелочкой вниз. Как в креаторе кнопка commit
тогда вам сюда:
Код
C++ (Qt)
void QPushButton::setMenu(QMenu * menu)


Название: Re: QAction на QToolBar-e как меню
Отправлено: lit-uriy от Март 07, 2015, 20:28
__Heaven__, Открой демонстрацию MinWindow, там есть то, что тебе надо.


Название: Re: QAction на QToolBar-e как меню
Отправлено: __Heaven__ от Март 07, 2015, 21:01
Спасибо


Название: Re: QAction на QToolBar-e как меню
Отправлено: juvf от Март 09, 2015, 18:20
Код:
 QToolButton::setPopupMode(QToolButton::MenuButtonPopup);