PyQt QWebEngineView 不加载任何 html

Posted

技术标签:

【中文标题】PyQt QWebEngineView 不加载任何 html【英文标题】:PyQt QWebEngineView not loading any html 【发布时间】:2021-09-17 20:51:11 【问题描述】:

我尝试在 Windows 10(Parallels Desktop 又名虚拟机)下启动并运行 QWebEngineView()。对于 MacOSX,这根本不是问题,但在 Windows 上测试它时,一切都停止了。我将问题缩小到 QWebEngineView。

无论我想如何将网页/本地 html 站点加载到 QWebEngineView 中,都无法正常工作。

例如,我尝试启动 https://zetcode.com/pyqt/qwebengineview/ 的示例,在几秒钟内您会在窗口中看到一个白屏,然后一切都消失了(参见此剪辑的开头https://imgur.com/a/PNTt2U2)。控制台有no错误信息,什么也没有。

我还有什么要安装的吗?

python -m pip list

Package           Version
----------------- --------
cachetools        4.2.2
future            0.18.2
pefile            2021.9.3
pip               21.2.4
py2exe            0.10.4.1
PyOpenGL          3.1.5
PyQt5             5.15.4
PyQt5-Qt5         5.15.2
PyQt5-sip         12.9.0
PyQtWebEngine     5.15.4
PyQtWebEngine-Qt5 5.15.2
PySide2           5.15.2
shiboken2         5.15.2
wheel             0.37.0

可能与此有关:

QWebEngineView not showing anything on Windows 10 PyQt5 QWebEngineView window won't show

【问题讨论】:

如果你加载像https://***.com/ 这样的网址,那么它可以工作吗? @JaWeilBaum 可以肯定的是,您使用的是普通的 QWebEngineView 和 setUrl(),对吗?这可能是虚拟化视频驱动程序的渲染问题。 @eyllanesc 不,这也不起作用 - 相同的行为...... @musicamante 是的,一个普通的 QWebEngineView,我使用 view.load(QUrl()) 来加载页面。可视化视频驱动程序的问题是公平的,但没有收到任何错误消息很奇怪。我什至用 Procmon 监控 【参考方案1】:

我刚刚在 Windows 10(不是虚拟机)上尝试了以下代码,它似乎工作正常。

import sys
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QtCore import *
from PyQt5.QtWebEngineWidgets import *


class Example(QWidget):

    def __init__(self):
        super().__init__()

        self.initUI()

    def initUI(self):

        vbox = QVBoxLayout(self)

        self.webEngineView = QWebEngineView()

        self.webEngineView.setUrl(QUrl("https://doc.qt.io/qt-5.15/reference-overview.html"))

        vbox.addWidget(self.webEngineView)

        self.setLayout(vbox)

        self.setGeometry(300, 300, 350, 250)
        self.setWindowTitle('QWebEngineView')

if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = Example()
    ex.show()
    sys.exit(app.exec_())

希望这会有所帮助,如果没有,那么您可能正在寻找一个更大的问题(可能 musicmante 是在正确的轨道上)

【讨论】:

以上是关于PyQt QWebEngineView 不加载任何 html的主要内容,如果未能解决你的问题,请参考以下文章

PyQt5 QWebEngineView 无法正常工作

PyQt5 中的 QWebEngineView 和 QWidget

PyQt5 QWebview 刷新问题

使用pyqt5 QWebEngineView开发浏览器

PyQt5中的QWebEngineView和QWidget

Python中pyqt QWebEngineView win32gui EnumWindows程序崩溃