当前位置: 代码迷 >> QT开发 >> Qt中怎么计算字体的内部间隔
  详细解决方案

Qt中怎么计算字体的内部间隔

热度:50   发布时间:2016-04-25 03:21:33.0
Qt中如何计算字体的内部间隔
即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
  相关解决方案