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

Était-ce utile?

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()))
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top