存在的问题

使用Qt designer软件设计出来的界面,与转换成python程序运行出来的结果不一致,具体看下图

Qt designer预览结果

image-20241009215433588

程序运行出来的结果

image-20241009215458231

原因分析

我自己的电脑是2560*1600分辨率的屏幕,采用的是200%的缩放比例,出现这种情况是Windows在高dpi下的老毛病了,常见的现象就是应用程序的各个组件缩放不正常。什么是高dpi以及缩放之类的问题,这里不做探讨,有兴趣的读者可以自己去了解。

解决方法

在程序中加入这一行代码,它的作用是启动应用程序的高dpi缩放

1
QtWidgets.QApplication.setAttribute(QtCore.Qt.AA_EnableHighDpiScaling)

结果

image-20241009220239777

常见误区

请勿用以下的方法启动高dpi缩放,高dpi缩放必须在app创建之前启动

1
2
3
4
5
6
7
app = QtWidgets.QApplication(sys.argv)
app.setAttribute(QtCore.Qt.AA_EnableHighDpiScaling,True)

'''
程序会出现以下的提示
Attribute Qt::AA_EnableHighDpiScaling must be set before QCoreApplication is created.
'''