Qt Quick 3D - 动态模型创建示例
演示动态模型创建。
本示例演示在应用程序中动态创建模型。应用程序启动时创建10个模型,可以使用“+”和“-”按钮添加或删除更多模型。
配置
创建节点
我们需要一个 节点 来存储动态创建的模型。
启动
我们在 Component.onCompleted
时创建了10个模型,以便示例显示启动时的情况。
Component.onCompleted: { for (var i = 0; i < 10; ++i) shapeSpawner.addShape() }
动态模型
添加模型
为了向场景中添加新项目,我们首先使用 Qt.createComponent 函数创建我们模型的 Component。然后我们使用组件的 createObject 函数来实例化项,传入位置和缩放作为参数。
function addShape() { var xPos = (2 * Math.random() * range) - range; var yPos = (2 * Math.random() * range) - range; var zPos = (2 * Math.random() * range) - range; var shapeComponent = Qt.createComponent("WeirdShape.qml"); let instance = shapeComponent.createObject(shapeSpawner, { "x": xPos, "y": yPos, "z": zPos, "scale": Qt.vector3d(0.25, 0.25, 0.25)}); instances.push(instance); count = instances.length }
删除模型
动态创建的模型通过从实例堆栈中弹出和销毁它们来删除。
function removeShape() { if (instances.length > 0) { let instance = instances.pop(); instance.destroy(); count = instances.length } }
文件
© 2024 The Qt Company Ltd. 本文档贡献的版权属于各自的所有者。此处提供的文档是根据自由软件基金会发布的 GNU 自由文档许可证版本 1.3 许可的。Qt 及其相应标志是 The Qt Company Ltd. 在芬兰以及全球其他国家的商标。所有其他商标均为各自所有者的财产。