首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >QFontMetrics给出了单空格字体的奇怪结果

QFontMetrics给出了单空格字体的奇怪结果
EN

Stack Overflow用户
提问于 2019-01-25 15:51:40
回答 1查看 408关注 0票数 5

С有人向我解释这个测试程序的结果吗?

代码语言:javascript
复制
#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。但是,QF占度量::width返回92!

EN

回答 1

Stack Overflow用户

发布于 2019-02-01 16:36:12

问题出在四舍五入。如果我使用QFontMetricsF而不是QFontMetrics,结果是正确的

代码语言:javascript
复制
W       :  11.4375
8*W     :  91.5
WWWWWWWW:  91.5

但我发现了另一件奇怪的事。QFontMetricsF::maxWidth()应该返回qreal,但实际上它总是返回四舍五入的值(在我的示例中是11)。它看起来像是Qt中的bug。https://bugreports.qt.io/projects/QTBUG/issues/QTBUG-73458?filter=allopenissues

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54368707

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档