我正在尝试将现有的pyqt5应用迁移到window 10的High-dpi。
QT5本身的文档在此处谈论高DPI扩展:http://doc.qt.io/qt-5/highdpi.html
QT_AUTO_SCREEN_SCALE_FACTOR to "1".
,但我无法在python代码中调整它:/
有什么想法?
请确保您在QT 5.6 上,浏览文档以意识到,然后更改您的应用程序INIT代码,以在其前和一行之后包含一行(用Python编写)但这在C 中会相似:
os.environ["QT_AUTO_SCREEN_SCALE_FACTOR"] = "1"
qapp = QApplication(sys.argv)
qapp.setAttribute(QtCore.Qt.AA_EnableHighDpiScaling)
对我而言,这三个添加似乎可以解决:
os.environ["QT_ENABLE_HIGHDPI_SCALING"] = "1"
os.environ["QT_AUTO_SCREEN_SCALE_FACTOR"] = "1"
os.environ["QT_SCALE_FACTOR"] = "1"
'qt_scale_factor'是对我影响最大的缩放的人。
这可能对像我一样找到该线程的其他人遇到类似问题时可能会有所帮助。
我主要在Windows 10笔记本电脑上开发一个PyQt5
应用程序,并带有高DPI显示屏。我注意到屏幕投影或将应用程序移动到双监视器设置中的其他显示时,我注意到了奇怪的行为。基本上,字体尺寸会发生巨大变化,这引起了布局的各种问题。
最终,从Windows阅读有关高DPI桌面应用程序DEV的信息使我进入了解决方案。他们建议使用Per-Monitor (V2) DPI Awareness
。看来Qt5
对此没有支持,但是QT6可以默认设置。
因此,仅将我对PyQt5
的依赖性升级到PyQt6
解决了我的问题。版本升级需要对我的代码进行一些较小的编辑。一个小小的打ic是,QAction
从QtWidgets
移至QtGui
模块。