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
。如果我不包括 QWebEngineView
,QLabel
不会失真。
为什么会发生这种情况,我该如何解决?
谢谢。
更新:
它似乎与以 window 作为父对象的 QWebEngineView
的实例化有关,因为当 QWebEngineView
只是创建而不是放置时效果仍然存在,并且当 QWebEngineView
被 QWebEngineView()
实例化且没有将小部件作为父级时,效果不会保留。
此问题是由于 driver 过时造成的。我找到了解决方案(也在 Whosebug 上)here,尽管它是针对一个稍微不同的问题(小部件隐藏在标题栏下方,而不是 QWebEngineView 的失真)。
我更新了我的 Intel(R) 高清显卡 driver(向前,与 link 中列出的答案不同)并且问题消失了。
我有一个 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
。如果我不包括 QWebEngineView
,QLabel
不会失真。
为什么会发生这种情况,我该如何解决?
谢谢。
更新:
它似乎与以 window 作为父对象的 QWebEngineView
的实例化有关,因为当 QWebEngineView
只是创建而不是放置时效果仍然存在,并且当 QWebEngineView
被 QWebEngineView()
实例化且没有将小部件作为父级时,效果不会保留。
此问题是由于 driver 过时造成的。我找到了解决方案(也在 Whosebug 上)here,尽管它是针对一个稍微不同的问题(小部件隐藏在标题栏下方,而不是 QWebEngineView 的失真)。
我更新了我的 Intel(R) 高清显卡 driver(向前,与 link 中列出的答案不同)并且问题消失了。