2011-11-28 33 views
-1

我正在讀一本關於Qt的書,有一個關於如何彈出歷史菜單的例子,文字說「當這個方法被調用時它會彈出一個菜單其項目對應的網頁的用戶訪問過的」,菜單應該如何彈出 - Qt

,但我真的不看我們怎麼做‘菜單’看得見的:這裏的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()); 
} 

,所以我不看看如何從這個簡單的功能彈出菜單? (「當這個方法被調用它會彈出一個菜單」)

感謝

回答

2

完全按照文檔的QMenu(特別是QMenu.exec())說,它的工作原理?

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

彈出的菜單中,這樣的行動對行動將在指定的全局位置p。

在您發佈的代碼相關線路:

if (QAction *action = menu.exec(QCursor::pos())) 
+0

哦,是的,你說得對,感謝您的快速答覆!乾杯 – Paul