无法将Qt3DCore::Quick::Quick3DEntity分配给QQmlComponent

无法将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:

尝试将类似委托的属性添加到自定义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 {
            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