3D重放器

3D重放器组件用于创建多个相似项目。与其他视图类型一样,3D重放器需要模型和代理。代理设置要使用的项目,而模型设置3D重放器组件中项目的结构。

模型可以是任何受支持的数据模型。此外,与其他视图的代理一样,3D重放器的代理可以访问其重放器中的索引,以及与代理相关的模型数据。

注意:3D重放器拥有它创建的所有项目。删除或动态销毁由3D重放器创建的项目会导致不可预测的行为。

注意:3D重放器只能重复从节点派生的对象。

有关更多信息,请参阅Qt Quick 3D文档中的3D重放器

3D重放器属性

模型

模型属性指定为重放器提供数据的模型。您只能使用属性视图中的模型属性来设置数字模型或将绑定到基于QML的模型。您可以使用代码视图将任何受支持的数据模型定义为模型属性值。

  • 表示重放器将创建的委托数量的数字。
  • 模型,如ListModel组件,或QAbstractItemModel子类。
  • 字符串列表。
  • 对象列表。

模型的类型会影响暴露给代理的属性。

代理

委托(Delegate)属性指定了一个模板,用于定义循环重复(repeater)实例化的每个对象。当前,委托属性需要在代码中使用编辑模式或代码视图进行定义。委托向只读索引属性公开,指示委托在循环重复中的索引。更多信息,请参阅Qt Quick 3D文档中的委托(Delegate)

如果模型是模型对象,例如ListModel,则委托可以像ListView等视图类中的委托一样,访问所有模型角色作为命名属性。

添加带数字模型的Repeater3D组件

本节解释了如何将带数字模型的Repeater3D组件添加到您的Qt Design Studio项目中。

添加Repeater3D组件

  1. 组件拖动一个Repeater3D组件到导航器中的场景
  2. 导航器中选择repeater3D,并在属性中设置模型为4。

现在,您已设置好Repeater3D组件使用数字模型来绘制相同项目的四个实例。接下来,您需要添加要绘制的项目。在这个例子中,我们使用的是立方体

  1. 组件中,将一个立方体拖动到导航器中的repeater3D。现在,场景中绘制了四个立方体,但它们绘制在同一个地方。
  2. 导航器中选择cube,并在属性中,选择Translation旁边的 > X
  3. 选择设置绑定以打开绑定编辑器
  4. 在绑定编辑器中,输入index * 150。这将为每个立方体实例设置X位置的150个单位增加。

  5. 选择确定,并转到3D视图查看结果。

添加带模型的Repeater3D组件

本节解释了如何将带模型的Repeater3D组件添加到您的Qt Design Studio项目中

添加Repeater3D组件

  1. 组件拖动一个Repeater3D组件到导航器中的场景
  2. 转到模型编辑器并创建一个命名为planetModel的新模型。
  3. 向模型添加以下列和数据。
    名称(字符串) 半径(实数)
    火星 3.39
    地球 6.37
    金星 6.05

    注意:您还可以导入JSON或CSV格式的模型。见导入数据模型

  4. 导航器中,选择_3DRepeater
  5. 属性中,将模型设置为DataStore.planetModel

现在,您已设置好Repeater3D组件使用ListModel来绘制项目。接下来,您需要添加要绘制的项目。在这个例子中,您使用的是球体

  1. 组件中,将一个球体拖动到导航器中的_3DRepeater

  2. 导航器中选择sphere,并在属性视图中,选择Scale旁边的 > X
  3. 选择设置绑定以打开绑定编辑器
  4. 在绑定编辑器中,输入radius。这将为每个球体实例设置X比例,以匹配模型中定义的半径值。

  5. 选择确定
  6. 重复步骤2至5,直到缩放 > Y缩放 > Z

现在,已经画出了三个不同大小的小球,但它们都在同一位置,因此您需要更改位置才能看到所有小球。

  1. 导航器中选中小球,然后在属性视图中,选中平移旁边的 > X
  2. 选择设置绑定以打开绑定编辑器
  3. 在绑定编辑器中,输入index * 1000。这将设置每个小球实例的X位置增加1000。

  4. 选择确定并进入3D视图查看结果。您需要缩小才能看到所有的小球。

可在某些Qt许可证下使用。
了解更多信息。