【发布时间】:2021-06-29 06:44:20
【问题描述】:
我在 C++ 中有一个 line 类,我想在 qml 中使用它。
我想用鼠标画一条线,并有多条线。
其实我想new我的line class,所以我用NodeInstantiator。
ListModel {
id: entityModel
}
NodeInstantiator {
id: instance
model: entityModel
delegate: Entity {
id: sphereEntity
components: [
Line { id:lineMesh } ,
PhongMaterial { id: material; ambient:"red" },
Transform { id: transform; }
]
}
}
我的问题是我不能在 NodeInstantiator 之外使用 ID 为 lineMesh 的 Line Component,而且我也不知道如何生成线条并将它们添加到它的 entityModel 中。
如果我不使用 NodeInstantiator ,当我通过鼠标左键绘制线条然后使用右键绘制停止时。然后在第二次,当我使用 左键我想要新的线实体。
如图所示,我现在可以只画一次。
【问题讨论】:
-
请编辑帖子解释为什么需要参考
lineMesh -
我要使用这个组件的功能。
-
也许您可以使用objectAt 访问委托中的函数。但是我不知道是否可以到达
lineMesh -
不行,不行,我测试一下。
-
看看这个 github example 和 this 。他们说:Qt3D NodeInstantiator 中有一个错误:与 ObjectModel 一起使用时会崩溃。因此,目前有一个明确的 ListModel