让Qt程序适配高分辨率屏幕,解决软件界面错乱异常

一、问题

前期使用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代码未经测试,大家可以自己偿试。

在这里插入图片描述

  • 24
    点赞
  • 88
    收藏
    觉得还不错? 一键收藏
  • 13
    评论
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值