如何在Qt5 QML Quick 2.0中读取位于加载器对象内部的属性timeout
?
import QtQuick 2.0
Rectangle {
width: 100
height: 100
color: "black"
property Component comp1 : Component {
Rectangle {
id: abc
property int timeout: 5000
width: 10; height: 10;
color: "red"
}
}
Loader {
id: loader
sourceComponent: comp1
}
Component.onCompleted: console.log( "timeout: " + loader.item.abc.timeout )
}
类型错误: 无法读取未定义的属性"超时"
代码中存在一些问题,即:
1) 您没有为组件对象分配id
标识符。
2)您正在尝试使用在此简单代码中不需要的属性继承Component
。
3) 您没有正确使用 item
属性来表示Loader
元素。
4) 您指的是属性名称,而不是组件的id
。这又回到了不必要的继承。
根据官方文档,您应该执行以下操作:
import QtQuick 2.0
Rectangle {
width: 100
height: 100
color: "black"
Component {
id: comp1
Rectangle {
id: abc
property int timeout: 5000
width: 10; height: 10;
color: "red"
}
}
Loader {
id: loader
sourceComponent: comp1
}
Component.onCompleted: console.log( "timeout: " + loader.item.timeout )
}