如何使QML组件(小部件)根据数据进行调整

时间:2012-10-12 05:29:00

标签: qt widget qml

我在Qt Quick应用程序中有一个Widget作为QML组件,它将在各种屏幕中用于显示内容。

如何使用此特定QML组件根据其中的项目进行调整。

2 个答案:

答案 0 :(得分:0)

如果它是通用的Item,则不能:您必须手动设置容器的大小以适合其内容。

适合其内容的唯一QML组件是RowColumnGrid元素。

答案 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 = ""*/
    }
}