我的问题很简单。如果我动态创建了qml组件,该如何设置其属性?
在这个示例中,我想在单击按钮元素时更改颜色
Window {
id:win
visible: true
width: 640
height: 480
title: qsTr("Hello World")
Component.onCompleted: {
var comp=Qt.createComponent("MyRectangle.qml")
comp.createObject(page,{"id":"pippo","color":"yellow","width":50})
}
Page{
id: page
anchors.fill: parent
Button{
x:200
height: 50
width: 50
onClicked:{
// i want to set color of the rectangle tha i have created
}
}
}
}
MyRectangle是我的自定义qml对象。
Rectangle {
id:pippo
color:"red"
width:30
height: 30
}
答案 0 :(得分:1)
您必须使用创建的对象来完成此操作,并且可以获得createObject()
返回的信息:
Window {
id:win
visible: true
width: 640
height: 480
title: qsTr("Hello World")
property var pippo_object: null
Component.onCompleted: {
var comp=Qt.createComponent("MyRectangle.qml")
pippo_object = comp.createObject(page, {
"id":"pippo",
"color":"yellow",
"width":50
})
}
Page{
id: page
anchors.fill: parent
Button{
x:200
height: 50
width: 50
onClicked:{
if(pippo_object!==null)
pippo_object.color = Qt.rgba(Math.random(),
Math.random(),
Math.random(),
1)
}
}
}
}