【发布时间】:2017-12-10 06:14:48
【问题描述】:
我有以下代码 sn-p 在 PySide 中工作,需要将其转换为在 PySide2 中工作。 目的是在单击时强制所有链接在系统浏览器中打开(而不是小部件尝试加载它们):
from PySide.QtWebKit import QWebView, QWebPage
class HtmlView(QWebView):
def __init__(self, parent=None):
super(HtmlView, self).__init__(parent)
self.page().setLinkDelegationPolicy(QWebPage.DelegateAllLinks) # not working in PySide2
self.linkClicked.connect(self.openWebsite) # not working in PySide2
这是我的翻译尝试:
from PySide2.QtWebEngineWidgets import QWebEngineView, QWebEnginePage
class HtmlView(QWebEngineView):
def __init__(self, parent=None):
super(HtmlView, self).__init__(parent)
self.page().setLinkDelegationPolicy(QWebEnginePage.DelegateAllLinks) # not working in PySide2
self.linkClicked.connect(self.openWebsite) # not working in PySide2
但是,QWebEngineView.linkClicked 不存在,QWebEngineView.setLinkDelegationPolicy 或 QWebEnginePage.DelegateAllLinks.
如果没有上述内容,在 PySide2 中实现这一目标的最佳方法是什么?
编辑:我检查了触发的 QEvents,但单击链接时似乎没有触发任何事件,所以如果没有来自 PySide/Qt4.8 的 linkClicked 事件,我不知道如何挂钩。
谢谢, 坦率的
【问题讨论】:
标签: python pyside2 qwebengineview