PyQt5 QWebEngineView空白窗口



我有一个相当复杂的应用程序,工作得很好。在系统从Debian 11升级到Debian 12之后,QWebEngineView组件显示一个空白屏幕(只是一个白窗口)。这是在由Poetry管理的虚拟环境中运行的。环境中的所有包都是最新版本。

测试用例如下所示。当在安装了本地包的Debian 12系统上运行时(没有venv),测试用例运行良好。

当它失败时,没有输出,没有错误,什么都没有。我甚至不知道该如何诊断。

#!/usr/bin/env python3
import sys
from PyQt5.QtWidgets import QApplication
from PyQt5.QtWebEngineWidgets import QWebEngineView
from PyQt5.QtCore import QUrl
html = """
<!DOCTYPE html>
<html>
<body>
<h1>Test</h1>
</body>
</html>
"""
app = QApplication(sys.argv)
web = QWebEngineView()
web.setHtml(html)
web.show()
sys.exit(app.exec_())

更新:我已经修改了测试用例的主体如下:

app = QApplication(sys.argv)

def loadstart():
print("load started")

def loadfin():
print("load end")

def loadprog(n):
print(f"progress {n=}")

web = QWebEngineView()
web.loadStarted.connect(loadstart)
web.loadFinished.connect(loadfin)
web.loadProgress.connect(loadprog)

在工作环境中:

$ ./web.py 
load started
progress n=0
progress n=20
progress n=100
load end

在失败环境中:

$ ./web.py 
load started
progress n=0
progress n=100

因此,工作环境有一个在20%负载时被调用的信号,而故障环境没有;此外,失败的环境确实达到100%,但从不调用loadFinished

还在想怎么回事…

PyQt邮件列表的回答:

看起来像这个问题:https://bugreports.qt.io/browse/QTBUG-103969

5.15.2二进制发行版不能用于更新的glibc版本。

我所知道的唯一的解决方法是通过——禁用seccompp -filter-sandbox作为QApplication的参数之一,或者使用较新的WebEngine版本。

相关内容

  • 没有找到相关文章

最新更新