想起之前在公司做的关于 HighDPI 的适配,在 Qt4 下可以说是比较繁琐,代码敲到手疼。早就听说 Qt5.6 开始支持了 HighDPI ,一直没机会看详细的代码。 还有另外的环境变量支持其他的 HighDPI 功能。这个参考文档即可 这里有一个小 tip :HighDPI 只是是根据显示器的像素密度来调整大小。在 Qt 中,用过 QFont 的人都会知道。 关于 HighDPI ,一个比较良好的代码习惯,其实在 Qt 的 HighDPI 文档部分中有提到: Always use the qreal versions of the QPainter drawing 总而言之,使用的时候只要一个开关即可开启 HighDPI 支持,这一点让我还是十分好奇的。迫不及待地翻看了源码。 代码实现 其实关于 HighDPI 的代码,基本就在两部分中。 本文也只是对 Qt HighDPI 支持比较简要的分析,还有很多细节,限于篇幅,并没有展开来说……
SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, width,height, SDL_WINDOW_ALLOW_HIGHDPI ); 对于窗口的左上角坐标点使用 SDL 默认的宏 SDL_WINDOWPOS_CENTERED 让它居中显示就好了,flags 使用 SDL_WINDOW_ALLOW_HIGHDPI。
高DPI标度 随着越来越多的软件元素与高DPI显示器兼容,您可以更改为HighDPI模式,以利用您的高DPI监视器上更清晰、更清晰的用户界面。
添加了QT_ENABLE_HIGHDPI_SCALING环境变量,该变量可基于显示DPI进行高dpi缩放。
", WINDOW_WIDTH, WINDOW_HEIGHT) .position_centered() // .resizable() .allow_highdpi
:SDL_WINDOW_MAXIMIZED, ::SDL_WINDOW_MINIMIZED, ::SDL_WINDOW_INPUT_GRABBED, ::SDL_WINDOW_ALLOW_HIGHDPI