我在 Qt Quick 应用程序中有一个作为 QML 组件的 Widget,它将用于各种屏幕以显示内容。
我如何使用这个特定的 QML 组件来根据其中的项目进行调整。
如果它是通用的Item
,则不能:您必须手动设置容器的大小以适应其内容。
唯一适合其内容的 QML 组件是Row
,Column
和Grid
元素。
来晚了,但如果你想要一个可更新的组件,你可以将组件的模型设置为任何列表模型,例如:
Component{
id:comp1
model:model1
}
ListModel {
id: model1
ListElement{
name:"a"
}
ListElement{
name: "b"
}
}
Component {
id: fruitDelegate
Row {
spacing: 10
Text { text: name }
}
}
ListView {
id:listView1
anchors.fill: parent
model: fruitModel
delegate: fruitDelegate
contentWidth: Screen.width
}
然后您可以随意更新列表视图
TextInput{
id: text_input1
width:parent.width * 0.80
text:"waddup?"
}
Button {
id: button2
anchors.left: text_input1.right
text: qsTr("Send")
onClicked: {
listView1.model.append( {name: text_input1.text, colorCode:"Red" });
/*text_input1.text = ""*/
}
}