setPixelSize字面意思是字体高度占用的像素px大小。
setPointSize字面意思是字体高度占用的可物理测量的长度磅(point)pt大小,一般用于印刷领域。
具体高度的理解为content-area,参看文章《C++学习(一三五)深度揭秘字体和字符集》
QFont中定义的PointSize,比如QFont font("宋体",25,QFont::Bold,true);定义的字体高度为25pt。
pt和px两者有换算关系,需要知道屏幕的DPI。可以通过文章《C++学习(一三三)qt如何获取屏幕物理尺寸、分辨率、DPI》中的方法获取。通过测试,发现该DPI为逻辑DPI而不是物理DPI。
dpi=QGuiApplication::screens().at(0)->logicalDotsPerInch();
1pt=DPI*1/72 px
对于逻辑DPI为120的显示器而言
1pt=120*1/72=1.67px
25pt=42px
下面是在物理DPI下的转换关系:
尺寸(XLen YLen)和分辨率(XScreen YScreen)
X方向:
1pt=1/72 inch=1/72*2.54 cm=1/72*2.54/XLen*XScreen px
Y方向:
1pt=1/72 inch=1/72*2.54 cm=1/72*2.54/YLen*YScreen px
对于分辨率为1920*1080,物理尺寸为344mm*194mm的显示器而言
X方向:
1pt=1/72*2.54/34.4*1920 px=1.97 px
Y方向:
1pt=1/72*2.54/19.4*1080 px=1.96 px