【发布时间】:2018-01-06 09:59:29
【问题描述】:
我有 qwebengine,我已经用自定义弹出菜单覆盖了它的上下文菜单,我需要添加菜单项,当我右键单击一个 url 时,它会给我在新选项卡中打开的选项,我如何实现这一点?我不知道该怎么做,所以我没有要显示的代码,也没有足够的主题,但是在 qt simple broswer 中,他们有以下代码,但我不理解,因为我从未使用过 qt 这里是示例:
void WebView::contextMenuEvent(QContextMenuEvent *event)
{
QMenu *menu = page()->createStandardContextMenu();
const QList<QAction*> actions = menu->actions();
auto it = std::find(actions.cbegin(), actions.cend(), page()->action(QWebEnginePage::OpenLinkInThisWindow));
if (it != actions.cend()) {
(*it)->setText(tr("Open Link in This Tab"));
++it;
QAction *before(it == actions.cend() ? nullptr : *it);
menu->insertAction(before, page()->action(QWebEnginePage::OpenLinkInNewWindow));
menu->insertAction(before, page()->action(QWebEnginePage::OpenLinkInNewTab));
}
menu->popup(event->globalPos());
}
如果有人可以解释上面的代码并提供简单的sn-p我如何在pyqt中实现它,我将非常感激。
【问题讨论】:
标签: python-3.x pyqt5 qtwebengine