Python 3.x QWebEnginePage:禁用链接
我正在将一个软件从PyQt4移植到PyQt5 对于PyQt4,我曾经使用QWebView来呈现html字符串(因此,没有web浏览,只是一些呈现)。因此,我可以使用以下设置禁用“浏览”:Python 3.x QWebEnginePage:禁用链接,python-3.x,pyqt,pyqt5,Python 3.x,Pyqt,Pyqt5,我正在将一个软件从PyQt4移植到PyQt5 对于PyQt4,我曾经使用QWebView来呈现html字符串(因此,没有web浏览,只是一些呈现)。因此,我可以使用以下设置禁用“浏览”: self.page().setLinkDelegationPolicy(QtWebKit.QWebPage.DelegateAllLinks) 其中self是我的QWebView 但是,我现在被迫QtWebEngineWidgets.QWebEngineView。没那么糟糕,但我不能再使用以前的设置了 QtW
self.page().setLinkDelegationPolicy(QtWebKit.QWebPage.DelegateAllLinks)
其中self
是我的QWebView
但是,我现在被迫QtWebEngineWidgets.QWebEngineView
。没那么糟糕,但我不能再使用以前的设置了
QtWebEngineWidgets.QWebEnginePage
没有DelegateAllLinks设置
我想禁用视图中的所有链接,这样用户就无法单击其中一个链接,从而弄乱我的软件
你有什么想法吗?首先:你绝对确定只需要使用完整的web浏览器来呈现一些静态html吗?该类只支持有限的HTML4子集,但如果您的html很简单,那么它将是比超重量级类(如
QWebEngineView
更好的选择
无论如何,如果您确实必须使用QWebEngineView
类,那么setLinkDelegationPolicy
的唯一替代方法是重新实现网页的方法:
class WebEnginePage(QtWebEngineWidgets.QWebEnginePage):
def acceptNavigationRequest(self, url, navtype, mainframe):
return False
很好的建议,我的html非常简单(粗体、斜体、sub/supscript)。但是我还需要在文本末尾渲染一个图像(来自本地文件)。我还需要一个缩放功能(Ctrl+鼠标)。你认为QTextBrowser适合吗?@Rififi。听起来有可能。包括图像标签,还有
zoomIn
和zoomOut
插槽。缩放只适用于文本(即不适用于图像)。Arf,我还需要图像的缩放功能。加上一切都已经存在,我将坚持使用QWebEngineView。子类化WebEnginePage非常有效,谢谢!