Qt 如何检测textItem的宽度并将另一个项目置于右侧

Qt 如何检测textItem的宽度并将另一个项目置于右侧,qt,qml,qtextedit,Qt,Qml,Qtextedit,我有一个QML TextItem,其中文本是动态设置的。宽度我无法确定,因为文本可以有任意数量的字符。 我需要在它旁边放置另一个文本项。 因此,当我们无法确定文本的宽度时,如何定位到文本项的右侧,因为文本可以随时增长。不允许使用Wrap或Elide 例: 和相邻的项目 Text { id: address font.bold: true verticalAlignment:Text.AlignBottom horizon

我有一个QML TextItem,其中文本是动态设置的。宽度我无法确定,因为文本可以有任意数量的字符。 我需要在它旁边放置另一个文本项。 因此,当我们无法确定文本的宽度时,如何定位到文本项的右侧,因为文本可以随时增长。不允许使用Wrap或Elide

例:

和相邻的项目

Text
    {
        id: address

        font.bold: true

        verticalAlignment:Text.AlignBottom
        horizontalAlignment:Text.AlignLeft
        maximumLineCount: 1

        anchors
        {
            bottom: parent.bottom
            bottomMargin: 2
            left: distance.right <-- Please help 
            right: parent.right
            rightMargin: 20
        }
    } 
文本
{
id:地址
font.bold:正确
垂直对齐:Text.AlignBottom
水平对齐:Text.AlignLeft
最大行数:1
锚定
{
底部:parent.bottom
底边距:2

left:distance.right您不必显式设置
宽度,因为它将被设置为
paintedWidth

您的示例可以简化如下:

Text {
    id: distance
    text: "Hello"
}

Text {
    text: "Wagmare"
    anchors.left: distance.right
}
更好的解决方案是使用

Row {
    Text {
        text: "Hello"
    }

    Text {
        text: "Wagmare"
    }
}

如果未明确设置宽度或高度,请读取这些属性 将返回文本边界矩形的参数(如果 明确设置了宽度或高度后,仍可以使用paintedWidth 和油漆高度)


谢谢augre。如果文本是在运行时设置的呢?就像在.cpp中接收数据后,我会更新文本属性。它会工作吗?是的,如果不手动设置宽度,如果文本更改,它仍将绑定到paintedWidth。您可以用计时器尝试:
计时器{id:timer-onTriggered:distance.text=“Hi”}Component.onCompleted:timer.start()
Row {
    Text {
        text: "Hello"
    }

    Text {
        text: "Wagmare"
    }
}