获取所选菜单项

时间:2014-01-20 07:42:37

标签: c++ qt qpushbutton qmenu

我正在我的应用程序用户的按钮(QPushButton)上实现运行时菜单,当他点击上传按钮时,必须在ftp和http之间做出选择。

QMenu menu(this); 
menu.addAction("ftp");
menu.addAction("http");
ui.mUploadBtn->setMenu(&menu);
ui.mUploadBtn->showMenu();

我的问题是,我怎么知道哪个选择用户选择了或者是他们的任何功能来获得它。

三江源

1 个答案:

答案 0 :(得分:1)

捕获菜单结果的一种方法是:

 QAction* action = menu.exec(QCursor::pos());

然后你可以使用

action->text()==QString("ftp")

要知道用户是否点击了“FTP”。

正如Frank Osterfeld在评论中所说,您也可以在课堂上创建一个插槽,并将菜单触发动作信号连接到它:

connect(&menu, SIGNAL(triggered(QAction*)), this, SLOT( sl_OnMenuTriggered(QAction* )));

void sl_OnMenuTriggered(QAction* _action)
{
if(_action->text()=="ftp") ...
}

这是“非阻塞”的方式。