我正在我的应用程序中的按钮 (QPushButton) 上实现运行时菜单,用户在单击上传按钮时必须在 ftp 和 http 之间做出选择。
QMenu menu(this);
menu.addAction("ftp");
menu.addAction("http");
ui.mUploadBtn->setMenu(&menu);
ui.mUploadBtn->showMenu();
我的问题是我怎么知道用户选择了哪个选择或者他们有什么功能可以得到那个。
谢谢
最佳答案
捕获菜单结果的一种方法是这样做:
QAction* action = menu.exec(QCursor::pos());
然后就可以使用了
action->text()==QString("ftp")
了解用户是否点击了“FTP”。
正如 Frank Osterfeld 在评论中所说,您还可以在您的类(class)中创建一个插槽,并将菜单触发 Action 信号连接到它:
connect(&menu, SIGNAL(triggered(QAction*)), this, SLOT( sl_OnMenuTriggered(QAction* )));
void sl_OnMenuTriggered(QAction* _action)
{
if(_action->text()=="ftp") ...
}
这就是“非阻塞”方式。
关于c++ - 获取选定的菜单项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21228592/