QPushButton
中的QWidgetAction
中有一个QMenu
。单击按钮时,我希望触发操作并关闭菜单,返回触发的操作。根据文档,小部件本身必须直接触发操作。
这是我的代码:
QMenu *menu = new QMenu();
QWidgetAction *widgetAction = new QWidgetAction(menu);
QPushButton *button = new QPushButton("Finish");
widgetAction->setDefaultWidget(button);
menu->addAction(widgetAction);
connect(button, SIGNAL(clicked()), widgetAction, SLOT(trigger()));
connect(widgetAction, SIGNAL(triggered()), menu, SLOT(close())); //Menu won't close without this
QAction* selectedAction = menu->exec(mapToGlobal(ui->pushButton->pos()));
if(selectedAction != NULL)
{
qDebug() << "no output from here";
}
但selectedAction
始终返回NULL
。定期QAction
添加到菜单中会自动关闭菜单并返回指向自己的指针。为什么不QWidgetAction
?
谢谢你的时间!