在最近的Qt工具开发工程中,发现一个问题:在自己电脑(分辨率是1366*768)上开发出来的工具,发布给同事(分辨率1920*1280)使用的过程中却出现了空间字体,边框等变形的问题,最后发现原因是因为在样式设计中,混合使用pt和px设置样式。
pt,全称是point,确切的来说它是一个专用的印刷单位“磅”,大小为1/72英寸,它是自然界的一个标准长度单位,属于绝对长度。
px,全称是pixel,确切的来说它不是自然界的长度单位,它可以很大,也可以很小。如果pixel很小,也就是我们常说的分辨率比较高,反之,则是分辨率比较低。因此点的大小会变化,属于相对长度。
对于Qt接口而言,大部分接口设置字体的提供了setPointSize()和setPixelSize()两种接口(没有的可以通过setFont()来配置),qss样式表中也提供了设置样式font-size来配置pt或者px,而对应控件大小设置则是通过设置pixel的尺寸来完成。因此,为了让发布出去的工具能够自适应分辨率,需要把代码中所有使用setpoint或者qss使用pt的代码全用设置px来替换。
博客参考:
pt和px的区别:https://www.jianshu.com/p/d9a0dae1f0bd