Important: Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

有关Qt4.8的高DPI适配的问题



  • Qt4.8好像完全不支持高DPI识别。我的电脑是125%缩放(120DPI),我用Qt Creator设计的界面,在我看来大小正好,很协调,但是放到其他人的100%缩放的显示器上,就会显得很大,甚至占满大半个屏幕。这说明Qt完全没有根据DPI来调整UI元素的大小,而只是按照死板的像素值来绘制UI。这个问题已经困扰我较长时间。我不升级到Qt5,是因为qt5静态编译出现莫名其妙的问题,不要跟我说升级哈,谢谢。

    但是,当我偶然发现WPS也是Qt4写的之后,我很震惊。因为它对高DPI的支持近乎完美。不光主程序是这样,就连“配置工具”也是。下面是一张对比图片:
    对比图
    (为了在100%的缩放下效果好一些,我故意将我的程序的UI元素设计的很小,但不影响对比)

    可以看出,同样是Qt4写出的程序,我的程序显然不支持高DPI,无论什么样的DPI都是一样的绘制方式,需要系统缩放才能在高DPI显示器上放大;而WPS的配置工具显然具有高DPI自适配的功能,它依靠自己识别DPI而绘制出的窗口及其元素的大小,和系统缩放的几乎相同,而且更加清晰。这就说明,WPS软件在DPI不同的显示器下,显示效果几乎相同,都很完美。

    我的问题是,如何让我的程序也做到这一点呢?恳请各位大佬前来帮助,万分感谢。


Log in to reply