Qt缩放系数

Qt界面缩放由内部类QHighDpiScaling控制,应用程序可以通过设置全局变量影响Qt的整体缩放系数。

Qt中影响缩放系数的全局宏变量有:

QT_DEVICE_PIXEL_RATIO //不推荐使用,没有设置QT_SCALE_FACTOR时生效。

QT_SCALE_FACTOR //全局缩放系数,多个屏幕用统一的缩放系数

qputenv("QT_SCALE_FACTOR", "2");

QT_SCREEN_SCALE_FACTORS //设置多个屏幕的缩放系数,该参数的值采用分号";"组合的键值对表示,其中名字对应

QGuiApplication::screens()中获取的QScreen::name()值,如下为测试时两台显示器的名称。

qputenv("QT_SCREEN_SCALE_FACTORS", "\\\\.\\DISPLAY1=1;\\\\.\\DISPLAY2=2");

QT_AUTO_SCREEN_SCALE_FACTOR //缩放系数由系统(Platform)根据DPI计算,值为0或者非0值,表示开启或关闭DPI自适应,若同时设置QT_SCALE_FACTOR,最终的缩放系数为二者乘积。

 
qputenv("QT_AUTO_SCREEN_SCALE_FACTOR", "1");

 

 

在Windows平台,若需要根据分辨率设置不同的界面大小,可以采用以下方式

    double dScaleFactor = 1.0;
    SetProcessDPIAware();
    int nWidth = GetSystemMetrics(SM_CXSCREEN);
    if(nWidth >= 3840)
    {
        dScaleFactor = 2.0;
    }
    qputenv("QT_SCALE_FACTOR", QString::number(dScaleFactor).toUtf8());

 

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值