加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

Windows上的QT高DPI支持

发布时间:2020-12-14 02:17:51 所属栏目:Windows 来源:网络整理
导读:根据此处的文档 http://doc.qt.io/qt-5/highdpi.html QT 5.4引入了高DPI支持. 但是,要么我缺少一些基本的东西,要么目前的支持仍处于非常早期阶段. 我正在写一个全新的应用程序,所以我有机会从头开始做.我知道我必须使用布局而不是固定定位等,但总会出现我需
根据此处的文档 http://doc.qt.io/qt-5/highdpi.html QT 5.4引入了高DPI支持.
但是,要么我缺少一些基本的东西,要么目前的支持仍处于非常早期阶段.
我正在写一个全新的应用程序,所以我有机会从头开始做.我知道我必须使用布局而不是固定定位等,但总会出现我需要指定的情况,例如控件的最小/最大尺寸.我可以在编辑器中指定它们,但这些是设备像素.因此,如果我将Windows设置更改为使用150%DPI,则编辑器中的最小值/最大值将会太小.当然,我可以获得该比率并调整代码中的所有必需值,但是如果我必须手动完成所有操作,QT会给我什么样的高DPI支持?我的意思是前QT 5.4有什么不同?

然后一个有趣的是QT_DEVICE_PIXEL_RATIO环境变量.它完全符合我的需要,它将编辑器中设置的所有像素乘以一个因子.但为什么它是环境变量而不是每个应用程序设置?为什么它只支持2,3等的整数值,因为我们知道Windows有125,150%等设置,为什么它不能自动读取Windows设置并将自己设置为该值?

解决方法

Qt完全支持Qt 5.6以后的高DPI监视器,通过属性或环境变量(OS X除外,支持本机).对于属性方法,请使用:

#include <QApplication>

int main(int argc,char *argv[])
{
    QApplication::setAttribute(Qt::AA_EnableHighDpiScaling); // DPI support

    QApplication app(argc,argv);   
    return app.exec();
}

或者设置系统环境变量:

QT_AUTO_SCREEN_SCALE_FACTOR = 1

有关Qt blog的更多信息

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读