2011-11-28 80 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