PyQt5:调整大小时 QWebEngineView 失真

PyQt5: QWebEngineView Distortion on Resize

我有一个 python 应用程序,它只显示给定的 html,代码如下:

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QGridLayout
from PyQt5.QtWebEngineWidgets import QWebEngineView

class IFace(QWidget):

    def __init__(self):
        super().__init__()
        self.setGeometry(300, 300, 1000, 500)
        self.view = WebView(self)
        self.setLayout(QGridLayout(self))
        self.layout().addWidget(self.view, 0, 0)
        self.layout().setContentsMargins(0, 0, 0, 0)

class WebView(QWebEngineView):

    def __init__(self, parent):
        super().__init__(parent)
        self.setHtml("""<html><head></head><body><center>
<h1>Hi!</h1>
<h1>Hi!</h1>
<h1>Hi!</h1>
</body></html>""")

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

html一开始是正确显示的,但是调整window垂直大小会导致显示的网页'stretch'向下,文字扭曲:

调整大小前:

调整大小后:

请注意文字是如何变高而不是变宽的。随着 window 垂直收缩,文本也向下移动。

当我将另一个小部件放置在 QWebEngineView 的左侧时,例如 QLabel,失真也会影响 QLabel。如果我不包括 QWebEngineViewQLabel 不会失真。

为什么会发生这种情况,我该如何解决?

谢谢。

更新:

它似乎与以 window 作为父对象的 QWebEngineView 的实例化有关,因为当 QWebEngineView 只是创建而不是放置时效果仍然存在,并且当 QWebEngineViewQWebEngineView() 实例化且没有将小部件作为父级时,效果不会保留。

此问题是由于 driver 过时造成的。我找到了解决方案(也在 Whosebug 上)here,尽管它是针对一个稍微不同的问题(小部件隐藏在标题栏下方,而不是 QWebEngineView 的失真)。

我更新了我的 Intel(R) 高清显卡 driver(向前,与 link 中列出的答案不同)并且问题消失了。