QMenu关闭后QWidgetAction不返回

时间:2017-01-01 15:30:38

标签: c++ qt qmenu

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

谢谢你的时间!

0 个答案:

没有答案