如何将按钮放在QMenu或QAction控件内?

lir*_*006 7 user-interface qt user-controls

我需要在QPushButton里面放一个QMenu.它是否可能,如果可能,那么如何?

我希望实现这样的目标:

图片

dev*_*dev 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);
Run Code Online (Sandbox Code Playgroud)

然后,您可以相应地从复选框处理信号.