无法将Qt3DCore::Quick::Quick3DEntity分配给QQmlComponent
尝试将类似委托的属性添加到自定义Qt3D实体: MyEntity.qml:无法将Qt3DCore::Quick::Quick3DEntity分配给QQmlComponent,qt,qml,qt3d,Qt,Qml,Qt3d,尝试将类似委托的属性添加到自定义Qt3D实体: MyEntity.qml: Entity { id: root default property Entity delegate // <-- MyEntity.qml:26 property int n: 1 property matrix4x4 t NodeInstantiator { id: rep model: root.n delegate:
Entity {
id: root
default property Entity delegate // <-- MyEntity.qml:26
property int n: 1
property matrix4x4 t
NodeInstantiator {
id: rep
model: root.n
delegate: Entity {
components: [
Transform {
matrix: {
var m = root.t
for(var i = 1; i < rep.index; i++)
m = m.times(root.t)
return m
}
}
]
NodeInstantiator {
delegate: root.delegate
}
}
}
}
结果:
qrc:/MyEntity.qml:26:17:无法将Qt3DCore::Quick::Quick3DEntity分配给QQmlComponent属性声明:
default property Entity delegate
必须更改为:
default property Component delegate
正常工作。您将什么以及如何分配给
root.delegate
?请提供。delegate
是MyEntity
的默认属性。在第二个代码块(用法)中,它在最后一行(实体{…}
)中分配。我可以明确地这样做,例如,MyEntity{delegate:Entity{…}}
,同样的事情。你的问题不清楚,但可能你指定了项(一个实例)而不是组件(一个类型)。@folibis这个问题很清楚,很简单,而且可以重复:只要将我的代码粘贴到任何Qt3D空应用程序中,我不需要把它包括在这里,因为它太长了。顺便说一下,你的猜测是错的。
default property Component delegate