带有 Windows Aero 主题的 QWebEngineView 比例错误
Posted
技术标签:
【中文标题】带有 Windows Aero 主题的 QWebEngineView 比例错误【英文标题】:Wrong scale for QWebEngineView with Windows Aero theme 【发布时间】:2018-05-15 14:49:31 【问题描述】:如果启用了 aero 主题(默认),我们会在 Windows 7 上遇到 QWebEngineView 问题。一旦 QWebEngineView 被渲染,整个窗口就会以错误的比例渲染。切换到基本主题时,一切都按预期呈现。
我使用的 Simpe 测试用例:
import sys
from PyQt5.QtWidgets import QApplication
from PyQt5.QtWebEngineWidgets import QWebEngineView, QWebEngineSettings
app = QApplication(sys.argv)
web = QWebEngineView()
web.load(QUrl("https://www.qt.io/"))
web.show()
sys.exit(app.exec_())
在 Chrome 中,页面如下所示:
但在 QWebEngineView 中,整个窗口被剪切并使用了错误的比例:
更糟糕的是: 在 PyQt UI 中添加 QWebEngineView 会以这种方式缩放整个 UI 窗口。
我检查了以下环境变量:
AA_Use96Dpi=False
AA_UseHighDpiPixmaps=False
AA_UseDesktopOpenGL=False
AA_UseOpenGLES=False
AA_UseSoftwareOpenGL=False
AA_ShareOpenGLContexts=True
AA_EnableHighDpiScaling=False
AA_DisableHighDpiScaling=False
此外,我尝试在 qt.conf 中使用 0-2 的值设置 dpiaareness,而没有任何更改。
欢迎任何提示/帮助。
谢谢
【问题讨论】:
这是我得到的:drive.google.com/file/d/1ubhOKxY4PmwFL_c3doLXqEOTXvoo0onx/…,指出 PyQt5 的版本会很有趣,QWebEngine 在 Windows 和 Mac OS 的 Qt 5.9 的第一个版本中存在驱动程序问题,我建议您报告错误。 感谢测试!该效果仅在 win7 aero 主题和任何可用/正在运行的 pyqt5 版本(5.10.0、5.9.2)中出现。我的版本:PyQt5==5.9.2 Python 3.5.3 创建bugreports.qt.io/browse/QTBUG-68318 我建议你将 PyQt 的版本更新到 5.10.1 与 pyqt 5.10.1 相同 【参考方案1】:它指出更新到最后一个英特尔显卡驱动程序解决了这个问题(不幸的是,这个版本的显卡驱动程序不稳定/在其他情况下会产生蓝屏,为什么我们到目前为止使用以前的版本)。感谢@eyllanesc 的提示!
我的结论是尽快切换到另一个框架,只要 QT 依赖于 OpenGL(用于嵌入 QtWebEngineView)——它对 Windows 的支持非常差,并且依赖于显卡驱动程序。我们不能指望 QT 中这个概念在不久的将来会发生变化。背景可以在这里找到:Is there any way to use QtWebEngine without OpenGL?
【讨论】:
以上是关于带有 Windows Aero 主题的 QWebEngineView 比例错误的主要内容,如果未能解决你的问题,请参考以下文章
旧版 MFC 应用程序在具有 Aero 主题的 windows7 操作系统上无法正常运行,但在经典主题下表现良好
[WPF自定义控件库]以Button为例谈谈如何模仿Aero2主题
使WPF程序应用预置的控件风格, 如Aero, Luna, Royale, Classic等
解决Windows 7中“使用Aero Peek预览桌面”变灰色的方法