Qt之高清屏显示

高清屏(HDPI)显示会带来什么问题?

  1. 控件、文字、图片变小
  2. 为什么会造成以上问题,由于DPI大,实际上是物理像素密度大,在物理像素和逻辑像素比(devicePixelRatio)一定的情况下(默认为1),即1个物理像素对应一个逻辑像素,这样显示时,必然会导致图片看起来小。

如何解决?

  • 改变devicePixelRatio,比如设为2,即2个物理像素表示1个逻辑像素,这样就能保证UI在高清屏上显示大小正常。

    // QApplication::devicePixelRatio();会变2。
    QApplication::setAttribute(Qt::AA_EnableHighDpiScaling, true);

  • 存在的问题

  1. 图片放大的时候有锯齿。

     //设置这个属性后,QPixmap加载图片分辨率为128*128,
     //显示大小为64*64, QPixmap的devicePixelRatio == 2,此时
     //显示的图片就没有锯齿。如果QPixmap的devicePixelRatio 为1
     //QApplication::devicePixelRatio为2,就会有锯齿。因此,
     //解决方法:1、使用高清图片 2.使用SVG图片
     QCoreApplication::setAttribute(Qt::AA_UseHighDpiPixmaps);
    
  2. 字体在缩放的时候质量不太好。

    [Platforms]
    WindowsArguments = fontengine=freetype
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值