我需要在QPushButton
内加QMenu
。它是否可能,如果可能,那么如何?
我想实现这样的目标:
答案 0 :(得分:10)
QWidgetAction是您正在寻找的。这是关于qt docs的内容
QWidgetAction类通过一个接口扩展QAction,用于将自定义小部件插入基于操作的容器
所以基本上它根据你传递给它的QWidget为QAction提供了一个自定义UI。 我使用QWidgetAction将复选框显示为QMenu项目。
QCheckBox *chkBox = new QCheckBox(menu);
chkBox ->setText("MyCheckBox");
QWidgetAction *chkBoxAction= new QWidgetAction(menu);
chkBoxAction->setDefaultWidget(chkBox);
menu->addAction(chkBoxAction);
然后,您可以相应地处理来自复选框的信号。
答案 1 :(得分:1)
如果您只想要一个菜单项具有状态,您可以使用QAction的Checkable属性:
rotateAct = new QAction(QIcon(":/images/Mouse/Rotate.png"), tr("&Rotate"), this);
rotateAct->setCheckable(true);