[英]QFontMetrics give strange results for monospace font
有人向我解釋該測試程序的結果嗎?
#include <QApplication>
#include <QDebug>
#include <QFontMetrics>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QFont font;
font.fromString("Monospace,14");
QFontMetrics fm(font);
qDebug() << "W : " << fm.width('W');
qDebug() << "8*W : " << 8*fm.width('W');
qDebug() << "WWWWWWWW: " << fm.width("WWWWWWWW"); // 8*W
return 0;
}
在將此代碼與Qt5.11結合之后,我得到了這樣的結果:
W : 11 8*W : 88 WWWWWWWW: 92
此等寬字體的一個字符'W'的大小為11。我希望由8個此類字符組成的字符串的大小應為88。但是QFontmetrics :: width返回92!
問題出在四舍五入。 如果我使用QFontMetricsF
而不是QFontMetrics
結果是正確的
W : 11.4375
8*W : 91.5
WWWWWWWW: 91.5
但是我發現了另一件事。 QFontMetricsF::maxWidth()
應該返回qreal類型,但實際上它總是返回舍入值(在我的示例中為11)。 它看起來像Qt中的錯誤。 https://bugreports.qt.io/projects/QTBUG/issues/QTBUG-73458?filter=allopenissues
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.