高清屏(HDPI)显示会带来什么问题?
- 控件、文字、图片变小
- 为什么会造成以上问题,由于DPI大,实际上是物理像素密度大,在物理像素和逻辑像素比(devicePixelRatio)一定的情况下(默认为1),即1个物理像素对应一个逻辑像素,这样显示时,必然会导致图片看起来小。
如何解决?
-
改变devicePixelRatio,比如设为2,即2个物理像素表示1个逻辑像素,这样就能保证UI在高清屏上显示大小正常。
// QApplication::devicePixelRatio();会变2。
QApplication::setAttribute(Qt::AA_EnableHighDpiScaling, true); -
存在的问题
-
图片放大的时候有锯齿。
//设置这个属性后,QPixmap加载图片分辨率为128*128, //显示大小为64*64, QPixmap的devicePixelRatio == 2,此时 //显示的图片就没有锯齿。如果QPixmap的devicePixelRatio 为1 //QApplication::devicePixelRatio为2,就会有锯齿。因此, //解决方法:1、使用高清图片 2.使用SVG图片 QCoreApplication::setAttribute(Qt::AA_UseHighDpiPixmaps);
-
字体在缩放的时候质量不太好。
[Platforms] WindowsArguments = fontengine=freetype