Qt之高清屏显示

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

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

如何解决?

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

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

  • 存在的问题

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

     QCoreApplication::setAttribute(Qt::AA_UseHighDpiPixmaps);
    
  2. 字体在缩放的时候质量不太好。

    [Platforms]
    WindowsArguments = fontengine=freetype
    

QCoreApplication::setAttribute(Qt::AA_UseHighDpiPixmaps);

这个函数设置后,QImage会根据缩放比例(devicePixelRatio)加载高清图像,比如,devicePixelRatio 为2时候,传入参数analyze.png,有analyze@2x.png在同目录,此时会加载analyze@2x.png

上一篇:analyze&elaborate


下一篇:oracle hangs or crash cases analyze