-1

我一直在用 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 Pro 64 位 Python 3.7.8 PySide2 5.15.2

4

2 回答 2

0

对于 PySide2,据我所知,您需要从 QCoreApplication 运行,在初始化应用程序之前设置属性。

        QtCore.QCoreApplication.setAttribute(QtCore.Qt.AA_EnableHighDpiScaling, True)
        QtCore.QCoreApplication.setAttribute(QtCore.Qt.AA_UseHighDpiPixmaps, True)
        app = QtWidgets.QApplication(sys.argv)
于 2021-05-11T00:56:25.600 回答
0

我在另一台计算机上测试代码时找到了答案。似乎默认的 Qt 缩放算法将 100-149% 的缩放设置设置为 100% 和 150% 或 + 到 200% 缩放。

我的意思是:如果您将 Windows 10 比例设置为 100% 或 125%,它将以 100% 的比例显示

但是,如果您将 Windows 10 比例设置为 150%、175% 或 200%,则窗口将以 200% 的比例显示。

于 2021-01-21T18:49:40.557 回答