如何阅读Qt5 QML Quick 2.0中Loader对象内的属性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 )
}
TypeError:无法读取未定义
的属性'timeout'
答案 0 :(得分:4)
您的代码中存在一些问题,即:
1)您没有为组件对象分配id
标识符。
2)您尝试使用此简单代码中不必要的属性继承Component
。
3)您没有为item
元素正确使用Loader
属性。
4)您指的是属性名称而不是Component的id
。这又回到了不必要的继承。
基于official documentation,你应该做这样的事情:
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 )
}