题
我正在阅读有关QT的书,有一个有关如何弹出历史记录菜单的示例,文本说:“当调用此方法时,它会弹出一个菜单,其项目与用户访问的网页相对应”,
但是我真的看不到我们如何使“菜单”可见:这是插槽方法:
void BrowerWindow::popupHistoryMenu()
{
QMenu menu;
…
QListIterator<QWebHistoryItem> i(webView->history()->items());
i.toBack();
while(i.hasPrevious() && … )
{
const QWebHistoryItem & item = i.previous();
QString title = ...
QAction *action = new QAction(item.icon(), title, &menu);
action->setData(item.url());
menu.addAction(action);
}
AQP::accelerateMenu(&menu);
if (QAction *action = menu.exec(QCursor::pos()))
webView->load(action->data().toUrl());
}
因此,我看不出如何从该简单功能中弹出菜单? (“调用此方法时,它会弹出菜单”)
谢谢
解决方案
完全像文档 QMenu
(具体来说, QMenu.exec()
)说它有效吗?
http://doc.qt.io/qt-5/qmenu.html#exec-2
弹出菜单,以便动作动作将在指定的全局位置p处。
您发布的代码中的相关行:
if (QAction *action = menu.exec(QCursor::pos()))
不隶属于 StackOverflow