Frage

Ich lese ein Buch über QT. Es gibt ein Beispiel darüber, wie das Menü des Verlaufs veröffentlicht wird. In dem Text heißt es: "Wenn diese Methode aufgerufen wird, wird ein Menü angezeigt, dessen Elemente den Webseiten entsprechen, die der Benutzer besucht hat".

Aber ich sehe nicht wirklich, wie wir das "Menü" sichtbar machen: Hier ist die Slot -Methode:

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());
}

Ich sehe also nicht, wie das Menü aus dieser einfachen Funktion aufgetaucht werden kann? ("Wenn diese Methode aufgerufen wird, taucht sie ein Menü auf")

Vielen Dank

War es hilfreich?

Lösung

Genau wie die Dokumente für QMenu (speziell, QMenu.exec()) Sagen Sie es funktioniert?

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

Erhöht das Menü so, dass die Aktionsaktion in der angegebenen globalen Position p liegt.

Relevante Zeile in dem Code, den Sie gepostet haben:

if (QAction *action = menu.exec(QCursor::pos()))
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top