我一直在使用 PySide2 和 Python 3.8 编写一个应用程序,我试图启用 HiDPi,我发现在脚本的开头添加它
QtWidgets.QApplication.setAttribute(QtCore.Qt.AA_EnableHighDpiScaling, True)
QtWidgets.QApplication.setAttribute(QtCore.Qt.AA_UseHighDpiPixmaps, True)
应该能解决问题。
但这对我不起作用。窗口以常规 dpi (96ppp) 显示,而整个系统和应用程序以 125% (120ppp) 运行。我做错了什么吗?
代码:
import sys
from PySide2 import QtWidgets, QtGui, QtCore, QtMultimedia
"""
some functions
"""
if __name__ == "__main__":
QtWidgets.QApplication.setAttribute(QtCore.Qt.AA_EnableHighDpiScaling, True)
QtWidgets.QApplication.setAttribute(QtCore.Qt.AA_UseHighDpiPixmaps, True)
app = QtWidgets.QApplication(sys.argv)
window = QtWidgets.QMainWindow()
label = QtWidgets.QLabel(window)
label.setText("hey")
window.show()
app.exec_()
系统规格: Windows 10 专业版 64 位 Python 3.7.8 PySide2 5.15.2
对于 PySide2,据我所知,您需要从 QCoreApplication 运行,在初始化应用程序之前设置属性。
QtCore.QCoreApplication.setAttribute(QtCore.Qt.AA_EnableHighDpiScaling, True)
QtCore.QCoreApplication.setAttribute(QtCore.Qt.AA_UseHighDpiPixmaps, True)
app = QtWidgets.QApplication(sys.argv)
我在另一台计算机上测试代码时找到了答案。看起来默认的 Qt 缩放算法将 100-149% 的缩放设置设置为 100% 和 150% 或 + 到 200% 缩放。
我的意思是: 如果您将 Windows 10 比例设置为 100% 或 125%,它将以 100% 比例显示
但是,如果您将 Windows 10 比例设置为 150%、175% 或 200%,则窗口将以 200% 比例显示。
试试这个:
import os
os.environ["QT_SCALE_FACTOR"] = "1.25"
创建之前
QApplication
您还可以更改该值以使用其他比例因子