質問
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()))
所属していません StackOverflow