一、问题

前期使用Qt开发一个登录模块一直使用很好。最近在一台新电脑上使用时发现排版混乱。

在这里插入图片描述

二、原因

这个问题很普遍,主要原因是旧软件对高清显示器的适配不当造成的。新电脑使用的是4K屏,win10系统自动进行了175%的缩放。
在这里插入图片描述

三、解决方案

1、更改显示器分辨率或者不使用缩放

如下图所示,将屏幕分辨修改成有类似 1920*1080p,或者将缩放与布局修改成100%。如果你不介意修改显示器的分辨率或者不介意屏幕整体变小,那么这个方案是最便捷有效的方案,而且还能做到一劳永逸,所有软件都不会出现类似问题了。

在这里插入图片描述

2、使用“高DIP缩放替代”

如果“方案一”不适用,或者只是个别软件存在这样的问题,那么可以单独修改其兼容性设置。设置方法:右击某软件,选择“属性”-“兼容性”-“更改高DIP设置”-“高DIP替代”,勾选“替代高DIP替代行为”,然后在下面的下拉选项中选择“系统”或“系统(增强)”。

在这里插入图片描述

3、修改软件,使之自动适配
a、C++代码

QApplication构造前设置Qt::AA_EnableHighDpiScaling属性:

QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);

在这里插入图片描述

b、python代码

在程序入口处增加:

QtCore.QCoreApplication.setAttribute(QtCore.Qt.AA_EnableHighDpiScaling)

在这里插入图片描述

四、总结

由于自己是开发者,有C++原码,所以经过测试通过在main()函数中增加代码的方案解决此问题的方案最优而且运行效果非常完美。python代码未经测试,大家可以自己偿试。

在这里插入图片描述

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐