Qt Windows DPI适配

首先你要确定自己用的是Qt5 还是Qt6,据我所知,Qt6可以自己适配dpi,但是部分显示会有bug,比如输入框会突然透明等。但是Qt6可以自己锁定dpi,不随着系统的放大缩小而变化,这个代码我还没有,如有需要可以自己去网上找一找。

PS:Qt5默认dpi是锁死的,不会随着系统的放大/缩小而影响界面的变化的,所以我们需要设置dpi适配,本文开发环境是Qt5.15.2 + msvc2019 32bit版本。

先上链接,本文采用的是方法四:

        QT windows dpi变化导致的界面异常处理_圆月山庄的博客-CSDN博客

采用了方法四后,程序已经可以适配dpi了,并且字体不会模糊,但是图片的话如果你没有准备高分辨率的图片,也会模糊。就算你准备了高清图后,拿pushbutton举例,如果你直接setIcon的话,图片还是很模糊(这应该是Qt5的bug,Qt6不会这样),你就需要通过样式表设置图片,这样就可以为pushbutton设置高清图:

poPb->setStyleSheet(QString("QPushButton{border-image: url(%1)}").arg(oPath));

如果是QLabel设置高清图的话,需要让图片尺寸设置为QLabel尺寸:

        QPixmap p(filePath);
        p.scaled(poLb->size(), Qt::KeepAspectRatio);
        poLb->setScaledContents(true);
        poLb->setPixmap(p);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值