如何在 PyQt5 应用程序中覆盖系统执行的 DPI 缩放

问题描述 投票:0回答:1

所以基本上我试图覆盖系统执行的 DPI 缩放,现在只需选择属性选项卡中的选项即可完成此操作,但我想将其实现到代码中。现在我已经尝试了

ctypes.windll.shcore.SetProcessDpiAwareness(1)
QGuiApplication().setAttribute(Qt.AA_DisableHighDpiScaling)
但它不会覆盖 DPI 缩放。那么您能告诉我如何解决这个问题吗

python python-3.x windows pyqt pyqt5
1个回答
0
投票

我想这取决于您需要如何处理 DPI 缩放。 例如,如果这是为了调整字体大小,您可以在 UI 初始化期间调用此类函数:

def adjustForDPI(self):
    dpi = self.screen().logicalDotsPerInch()
    fontSize = dpi / 96 * 12  # Assuming 12 is the base font size for 96 DPI

如果这是一个 matplotlib 图形,您可以使用直接指定 DPI:

fig = Figure(dpi=48)

如果您使用 QPixmap 来显示图像,您也可以使用这个:

app.setAttribute(Qt.AA_UseHighDpiPixmaps)
© www.soinside.com 2019 - 2024. All rights reserved.