我在Qt Quick应用程序中有一个Widget作为QML组件,它将在各种屏幕中用于显示内容。
如何使用此特定QML组件根据其中的项目进行调整。
答案 0 :(得分:0)
如果它是通用的Item
,则不能:您必须手动设置容器的大小以适合其内容。
适合其内容的唯一QML组件是Row
,Column
和Grid
元素。
答案 1 :(得分:0)
迟到了,但是如果你想拥有一个可更新的组件,你可以将组件的模型设置为任何列表模型,如:
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 = ""*/
}
}