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