即TEXTMETRIC结构体中的tmInternalLeading属性,如果用GDI是可以获得的,但是如果想用纯Qt,即使用QFont和QFontMetrics,算出来的值总有偏差,如何解决?
现在的代码类似这样
int realHeight = font.pointSize();
QFontMetrics fm(font);
int pixelsHigh = fm.height();
int pixelsLeading = fm.leading();
int pixelsDescent = fm.descent();
int nInternalLeading = pixelsHigh - realHeight - pixelsLeading - pixelsDescent - 1;
按照某外国论坛的代码来看,这个代码理论上是正确的,可是实际上跑起来由于 font.pointSize()的值其实是不准确的,导致了最后计算出来的nInternalLeading 不准确,有没有别的办法获得准确的 font.pointSize()值?
------解决方案--------------------
首先,使用它之前,你的QApplication或QGuiApplication有没有已经初始化完毕?
如果和系统API提供的数值真的不一样,你可以去提交一个bug