Qml 如何将列中的矩形(按其内部文本大小)调整为最大的文本块?
我在一列中有不同大小的名称,希望根据列表中最大的名称来调整矩形和外部项userNameContent的大小(如果可能,不使用javascript) 所有文本矩形的大小都应该与结果userNameContent.width相同,这样白色的空白就消失了,知道吗Qml 如何将列中的矩形(按其内部文本大小)调整为最大的文本块?,qml,Qml,我在一列中有不同大小的名称,希望根据列表中最大的名称来调整矩形和外部项userNameContent的大小(如果可能,不使用javascript) 所有文本矩形的大小都应该与结果userNameContent.width相同,这样白色的空白就消失了,知道吗 我将使用以下结构: ColumnLayout { anchors.centerIn: parent spacing: 1 Repeater { model: ["aaaaa",&q
我将使用以下结构:
ColumnLayout {
anchors.centerIn: parent
spacing: 1
Repeater {
model: ["aaaaa","bbbbbbbbbbbbb","cccccccc"]
delegate: Rectangle {
height: 30
width: txt.width + 10
color: "orange"
Layout.fillWidth: true
Text {
id: txt
text: modelData
anchors.verticalCenter: parent.verticalCenter
}
}
}
}
这是因为
文本
基于文本赋予它隐式宽度
,然后它会调整父级行布局
但您不能用它约束文本的最大宽度。我不想约束文本的最大宽度-可以大到needed@GrecKo,Rectange.width将填充适当的文本宽度,因此ColumnLayout将扩展到最大值。然后Layout.fillWidth:true
将拉伸小于最大值的剩余文本。我的观点是,如果要使用此构造,您不能将宽度设置为低于文本的最大宽度。也不建议在布局中设置width
。这里需要做的是在矩形中执行implicitWidth:txt.implicitWidth
,在文本中执行anchors.fill:parent
ColumnLayout {
anchors.centerIn: parent
spacing: 1
Repeater {
model: ["aaaaa","bbbbbbbbbbbbb","cccccccc"]
delegate: Rectangle {
height: 30
width: txt.width + 10
color: "orange"
Layout.fillWidth: true
Text {
id: txt
text: modelData
anchors.verticalCenter: parent.verticalCenter
}
}
}
}