Как поместить кнопку в элемент управления QMenu или QAction? - PullRequest
7 голосов
/ 02 января 2012

Мне нужно положить QPushButton внутрь QMenu.Возможно ли это, и если да, то как?

Я хочу добиться чего-то вроде этого:

image

Ответы [ 2 ]

10 голосов
/ 22 февраля 2012

QWidgetAction - это то, что вы ищете.Это то, что есть в qt docs

Класс QWidgetAction расширяет QAction с помощью интерфейса для вставки пользовательских виджетов в контейнеры, основанные на действии

Таким образом, в основном это дает пользовательский интерфейс для QActionв соответствии с тем, что QWidget вы переходите к нему.Я использовал QWidgetAction для отображения флажка в качестве элементов QMenu.

QCheckBox *chkBox = new QCheckBox(menu);
chkBox ->setText("MyCheckBox");
QWidgetAction *chkBoxAction= new QWidgetAction(menu);
chkBoxAction->setDefaultWidget(chkBox);
menu->addAction(chkBoxAction);

Затем вы можете обрабатывать сигналы из флажка соответственно.

1 голос
/ 13 января 2016

Если вы хотите, чтобы только пункт меню имел состояние, вы можете использовать свойство Checkable QAction:

rotateAct = new QAction(QIcon(":/images/Mouse/Rotate.png"), tr("&Rotate"), this);
rotateAct->setCheckable(true);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...