Как положить кнопку внутри управления QMenu или QAction?
мне нужно поставить QPushButton
внутри QMenu
. Возможно ли это, и если да, то как?
Я хочу достичь чего-то подобного:
2 ответов
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);
затем вы можете обрабатывать сигналы от галку соответственно.
Если вы хотите, чтобы элемент меню имел только состояние, вы можете использовать свойство Checkable QAction:
rotateAct = new QAction(QIcon(":/images/Mouse/Rotate.png"), tr("&Rotate"), this);
rotateAct->setCheckable(true);