为什么下一个函数返回0? (我的环境是:Windows Vista,vc ++ 9,Qt4.5)


int func()
{
    QPushButton button("Blah blah");
    QFontMetrics fm = button.fontMetrics();
    return fm.leading();
}

致电“fm.height()”返回合理的结果(在我的情况下为16像素)。

致电“fm.lineSpacing()”返回与“fm.height()”相同的结果。

调用“fm.boundingRect(QRect(),0,”第一行\ n第二行\ n第三行“)。height();"返回16 * 3,即结果中不再包括行间距...

这种不正确的用法是我的吗?

有帮助吗?

解决方案

根据文档 lineSpacing()总是等于 height() + leading()

height()总是等于 ascent()+ descent()+ 1 (1代表基线)。

来自这里引导的是”文本行之间的垂直空间 - 名称来自以前用于机械打印过程以分离文本行的物理铅块“。

那么,你使用的是什么字体,它是否使用零大小的前导?

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top