所以基本上我试图覆盖系统执行的 DPI 缩放,现在只需选择属性选项卡中的选项即可完成此操作,但我想将其实现到代码中。现在我已经尝试了
ctypes.windll.shcore.SetProcessDpiAwareness(1)
和 QGuiApplication().setAttribute(Qt.AA_DisableHighDpiScaling)
但它不会覆盖 DPI 缩放。那么您能告诉我如何解决这个问题吗
我想这取决于您需要如何处理 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)