質問

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

しかし、私は「メニュー」をどのように見えるかを実際には見ていません。これがスロットメソッドです。

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()))
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top