Qt 如何在qml中获取子项的id
当我尝试获取children ID时,我稍微修改了这个示例 与按空格键相反:Qt 如何在qml中获取子项的id,qt,debugging,qml,Qt,Debugging,Qml,当我尝试获取children ID时,我稍微修改了这个示例 与按空格键相反: qml: undefined qml: this is pole qml: this is pinweel qml: this is blur 为什么此脚本返回未定义的id 我需要遍历一些对象,并且能够知道什么是什么——所以我需要知道如何遍历根树,以获取其子对象的id及其对象类型 不幸的是,我无法打印最繁琐的id,必须添加一些简单的属性才能完成,但这意味着在实际项目中需要大量工作,因为每个对象都需要信息属性:( 因此
qml: undefined
qml: this is pole
qml: this is pinweel
qml: this is blur
为什么此脚本返回未定义的id
我需要遍历一些对象,并且能够知道什么是什么——所以我需要知道如何遍历根树,以获取其子对象的id及其对象类型
不幸的是,我无法打印最繁琐的id,必须添加一些简单的属性才能完成,但这意味着在实际项目中需要大量工作,因为每个对象都需要信息属性:(
因此,我重申:
ID不是普通的对象属性,所以当您尝试通过JS对其进行评估时,它是未定义的,而QML不提供诸如<代码> Type of /Cuth>之类的操作符。因此,您需要手动添加<代码>类型或<代码> ObjistNox< /Case>属性。我将考虑子类<代码>图像< /代码>,并添加<代码>类型 > Ref:< /P>
项目
{
id:根
形象{
id:背景
类型:“图像”
}
形象{
id:杆
类型:“图像”
}
函数iter(){
对于(变量i=0;i
但是为什么不提供id?我可以理解为什么它应该是只读的,但是在应用工程方面,不为开发者提供id的原因是什么?@user2614242id
不是不动产。从文档中可以看出:“虽然它看起来像一个普通属性,但id
属性不是一个普通属性属性,并且应用了特殊的语义;例如,在上面的示例中,无法访问myTextInput.id
。“我有一个类似的问题要问。您是否可以编辑您的问题,以获得关于为什么无法访问对象的id
值的解释?
qml: undefined
qml: undefined
qml: undefined
qml: undefined
qml: undefined
qml: this is pole
qml: this is pinweel
qml: this is blur
Item
{
id: root
Image {
id: background
type: "image"
}
Image {
id: pole
type: "image"
}
function iter(){
for(var i = 0; i < root.children.length; ++i)
if(root.children[i].type==="image"){
//balabala
}
}
}
}