-1

Qtに関する本を読んでいますが、履歴メニューをポップアップする方法の例があります。「このメソッドを呼び出すと、ユーザーがアクセスしたWebページに対応するアイテムのメニューがポップアップします」というテキストが表示されます。

しかし、「メニュー」をどのように表示するかは実際にはわかりません。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());
}

だから私はその単純な関数からメニューをポップアップする方法がわかりませんか?(「このメソッドが呼び出されると、メニューがポップアップします」)

ありがとう

4

1 に答える 1

2

QMenu(具体的には)のドキュメントとまったく同じように、QMenu.exec()それが機能すると言っていますか?

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

アクション action が指定されたグローバル位置 p になるように、メニューをポップアップします。

投稿したコードの関連行:

if (QAction *action = menu.exec(QCursor::pos()))
于 2011-11-28T23:34:24.963 に答える