如何弹出菜单 - Qt

时间:2011-11-28 23:30:39

标签: qt qmenu

我正在读一本关于Qt的书,有一个关于如何弹出历史菜单的例子,文字说“当调用这个方法时,它弹出一个菜单,其项目对应于用户访问过的网页”

但我真的没看到我们如何看到“菜单”:这是SLOT方法:

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());
}

所以我看不出如何从这个简单的功能中弹出菜单? (“当调用此方法时,它会弹出一个菜单”)

由于

1 个答案:

答案 0 :(得分:2)

正如QMenu(具体而言,QMenu.exec())的文档说它有效吗?

http://doc.qt.io/qt-5/qmenu.html#exec-2

  

弹出菜单,以便操作操作位于指定的全局位置p。

您发布的代码中的相关行:

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