我有一个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,但垂直调整窗口大小会导致显示的网页向下“拉伸”,扭曲文字:
注意文本如何更高,但不是更宽。当窗口垂直收缩时,文本也会向下移动。
当我在QWebEngineView
的左侧放置另一个小部件时,例如QLabel
,失真也会影响QLabel
。如果我不包含QWebEngineView
,则QLabel
不会失真。
为什么会发生这种情况,我该如何解决?
感谢。
更新
它似乎与将窗口作为父窗口的QWebEngineView
的实例化有关,因为当QWebEngineView
仅创建未放置时效果仍然存在,并且效果不会<{1}}由QWebEngineView
实例化而没有将小部件作为父级时保留。
答案 0 :(得分:0)
由于驱动程序过时而发生此问题。我找到了解决方案(也在stackoverflow上)here,尽管它是一个稍有不同的问题(小部件隐藏在标题栏下方,而不是QWebEngineView的变形)。
我更新了我的Intel®HD Graphics驱动程序(向前,与链接中列出的答案不同),问题消失了。