comment le menu est censé être sauté vers le haut - Qt
Question
Je lis un livre sur Qt, il est un exemple sur la façon de faire apparaître le menu de l'histoire, le texte dit: « Quand cette méthode est appelée, il apparaît un menu dont les éléments correspondent aux pages Web que l'utilisateur a visité »,
mais je ne vois vraiment pas comment nous faisons le « menu » visible ici est la méthode 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());
}
Je ne vois donc pas comment le menu peut être sauté vers le haut de cette fonction simple? ( « Lorsque cette méthode est appelée, il apparaît un menu »)
Merci
La solution
Exactement comme les docs pour QMenu
(en particulier, QMenu.exec()
) disent que cela fonctionne?
http://doc.qt.io/qt-5/ qmenu.html # exec-2
Pops le menu afin que l'action d'action sera à la position globale spécifiée p.
ligne pertinente dans le code affiché:
if (QAction *action = menu.exec(QCursor::pos()))