Pregunta

Estoy leyendo un libro sobre QT, hay un ejemplo sobre cómo aparecer en el menú de la historia, el texto dice "Cuando se invoca este método, aparece un menú cuyos elementos corresponden a las páginas web que el usuario ha visitado",

Pero realmente no veo cómo hacemos visible el "menú": aquí está el método de ranura:

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

¿Entonces no veo cómo se puede aparecer el menú de esa función simple? ("Cuando se invoca este método, aparece un menú")

Gracias

¿Fue útil?

Solución

Exactamente como los documentos para QMenu (específicamente, QMenu.exec()) decir que funciona?

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

Aparece el menú para que la acción de acción esté en la posición global especificada p.

Línea relevante en el código que publicó:

if (QAction *action = menu.exec(QCursor::pos()))
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top