【问题标题】:QWebEngineView not loading with default Windows elevationQWebEngineView 未使用默认 Windows 海拔加载
【发布时间】:2021-07-07 15:51:08
【问题描述】:

我遇到了一个奇怪的问题,这个简单的 QWebEngine 代码作为 Windows 10 上的普通用户运行得非常好(完全加载页面),但是当我提升自己的默认用户帐户时,它会停止加载页面。进度输出将从 0->100 开始,不会在浏览器上调用 loadFinished 或在页面上显示任何输出。我尝试将它作为提升的标准管理员内置帐户运行,它似乎工作起来很奇怪。

这是卸载的页面:

它工作正常:

使用os.environ["QT_DEBUG_PLUGINS"] = "1" 运行不会显示提升和非提升进程之间的任何差异。

import sys

from PyQt5.QtCore import QUrl
from PyQt5.QtWebEngineWidgets import QWebEngineView
from PyQt5.QtWidgets import QApplication, QMainWindow


class MainWindow(QMainWindow):
    def __init__(self, *args, **kwargs):
        super(MainWindow, self).__init__(*args, **kwargs)

        self.browser = QWebEngineView()
        self.browser.setUrl(QUrl('https://www.google.com'))
        self.browser.loadProgress.connect(self.on_load_progress)

        self.setCentralWidget(self.browser)
        self.show()

    def on_load_progress(self, progress: int):
        print(f'loading progress:[{progress}]...')


app = QApplication(sys.argv)
main_win = MainWindow()

app.exec()

【问题讨论】:

  • 快速更新:在连接到 QWebEngineView.renderProcessTerminated 信号后,我发现渲染进程在页面的 [0] 和 [100] 加载进度之前一直被终止。

标签: python windows pyqt5 python-3.9 qwebengineview


【解决方案1】:

在尝试了很多事情并查看了很多日志之后,我发现这个问题的唯一部分解决方案是将 --no-sandbox 添加到 QApplication 参数列表中,以使 Chromium webdriver 完全正常工作。对于我的应用来说,这已经足够了,但在没有沙盒的情况下运行对于更广泛的解决方案来说并不理想。

感谢this 线程(比我的描述有更多相关信息),对于那些感兴趣的人,我找到了答案。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-25
    • 1970-01-01
    • 2021-02-28
    • 1970-01-01
    • 2020-10-06
    • 2016-12-07
    相关资源
    最近更新 更多