高清屏(HDPI)显示会带来什么问题?
- 控件、文字、图片变小
- 为什么会造成以上问题,由于DPI大,实际上是物理像素密度大,在物理像素和逻辑像素比(devicePixelRatio)一定的情况下(默认为1),即1个物理像素对应一个逻辑像素,这样显示时,必然会导致图片看起来小。
如何解决?
-
改变devicePixelRatio,比如设为2,即2个物理像素表示1个逻辑像素,这样就能保证UI在高清屏上显示大小正常。
// QApplication::devicePixelRatio();会变2。
QApplication::setAttribute(Qt::AA_EnableHighDpiScaling, true); -
存在的问题
-
图片放大的时候有锯齿。
QCoreApplication::setAttribute(Qt::AA_UseHighDpiPixmaps);
-
字体在缩放的时候质量不太好。
[Platforms] WindowsArguments = fontengine=freetype
QCoreApplication::setAttribute(Qt::AA_UseHighDpiPixmaps);
这个函数设置后,QImage会根据缩放比例(devicePixelRatio)加载高清图像,比如,devicePixelRatio 为2时候,传入参数analyze.png,有analyze@2x.png在同目录,此时会加载analyze@2x.png