我有以下代码片段在 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事件,我不知道如何挂钩。
谢谢,坦率