首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >qml TextMetrics的布局与文本不相同。

qml TextMetrics的布局与文本不相同。
EN

Stack Overflow用户
提问于 2017-10-05 23:45:36
回答 1查看 1.6K关注 0票数 2

TextMetrics应该告诉您呈现文本字符串的大小,但它似乎与 text 实际呈现文本的方式不匹配,特别是当字符串包含空格时。这个问题在某些字体和pointSizepixelSize设置中非常糟糕,但是随着其他字体或大小的增加,问题就消失了。

下面的代码创建与boundingRect返回的TextMetrics完全相同的高度和宽度的Retangles,它应该覆盖呈现文本的每个像素。

但是,这些矩形比呈现的文本略窄,导致最后一个字符挂在矩形之外,该矩形被下一个矩形覆盖(可以看到最后的'd‘字符挂在最后一个矩形的边缘之外)。

怎么解决这个问题?

是否有可靠的方法来准确地了解,,呈现文本字符串的边框?

代码语言:javascript
运行
复制
import QtQuick 2.7
import QtQuick.Controls 2.0
import QtQuick.Layouts 1.3

ApplicationWindow {
    visible: true
    width: 800
    height: 100
    color: "grey"

    TextMetrics {
        id: metrics
        font.family: "Helvetica" // or try "Ubuntu"
        //font.pixelSize: 12
        font.pointSize: 14
        text: "H                      d"  // more spaces causes more corruption
    }

    Row {
        Repeater {
            model: 5
            Rectangle {
                clip: false
                color: "yellow"
                width: metrics.boundingRect.width
                height: metrics.boundingRect.height
                Text {
                    text: metrics.text
                    font: metrics.font
                }
            }
        }
    }
}

EN

Stack Overflow用户

发布于 2020-11-09 10:20:10

@MarkCh在问题的注释中的解决方案是对我有效的解决方案,它比添加TextMetrics元素更简单。这是我的全部解决办法:

代码语言:javascript
运行
复制
Rectangle {
    clip: false
    color: "yellow"
    width: text.contentWidth
    height: text.contentHeight
    Text {
        id: text
        text: "H                      d"
        anchors.fill: parent
    }
}
票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46596318

复制
相关文章

相似问题

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