C

展示 QML 类型

表示 Qt 3D Studio 展示。 更多...

导入语句import QtStudio3D.OpenGL 2.8

属性

信号

方法

详细描述

该项目提供控制和展示相关的属性和方法。

Qt 3D Studio 支持单一项目中多个展示。每个项目都有一个主展示,可以有零个或多个子展示。子展示可以作为 Qt 3D Studio 层的内容或者纹理映射融入主展示。

文件系统中,每个展示对应一个 .uip 展示文件。存在时,.uia 项目文件通过指定每个(子)展示的名称来链接这些展示,并指定哪个是主展示。

项目 .uia 还定义了由演示文稿导出的 数据输入数据输出数据输入 提供了向演示文稿提供输入的方式,例如使用代码控制子演示文稿的时间线。 数据输出 提供了一种在动画时间线、行为脚本或 数据输入 中属性变化时获得通知的方式。

演示文稿类型专门处理类型 ElementSceneElement数据输入数据输出 以及 子演示文稿设置 的子对象。这些对象将自动与演示文稿相关联,并可以从那一刻开始控制演示文稿的某些方面。

从 API 角度来看,演示文稿对应主要演示文稿。源属性可以引用 .uia.uip 文件。当指定具有 .uip 扩展名的文件,并且与相同名称存在 .uia 文件时,自动加载 .uia,因此无论是否有子演示文稿信息都是可用的。

属性文档

[只读] createdElements : 列表<字符串>

该属性包含此演示文稿上所有动态创建的元素列表。

此属性是只读的。

注意:元素只能通过 C++ API 动态创建。

另请参阅:Q3DSPresentation::createElement()Q3DSPresentation::createElements()


[只读] createdMaterials : 列表<字符串>

该属性包含此演示文稿上所有动态创建的材质列表。

此属性是只读的。

注意:材质只能通过 C++ API 动态创建。


[只读] createdMeshes : 列表<字符串>

该属性包含此演示文稿上所有动态创建的网格列表。

此属性是只读的。

注意:网格只能通过 C++ API 动态创建。


delayedLoading : 布尔值

此属性控制是否在加载演示文稿时(false)或在它们真正在演示文稿中使用时(true)加载演示文稿资源。资源按幻灯片加载,因此一次加载一个幻灯片所需的全部资源。

资源可以是图像、子演示文稿、材质、效果和网格。

默认值为 false


shaderCacheFile : URL

指定用于初始着色器初始化的着色器缓存文件。此属性值必须在演示文稿显示之前设置。使用缓存的着色器可以提高演示文稿初始化速度。

如果未设置此属性,所有着色器将按正常方式生成。

如果此属性指向有效的着色器缓存文件,则不支持新着色器缓存生成。

默认值为空 URL。

此属性是在 QtStudio3D.OpenGL 2.5 中引入的。

另请参阅:exportShaderCache()


source : string

存储主演示文件的名称(*.uia 或 *.uip)。这可能是一个本地文件或 qrc URL。

所有后续资产(纹理图的图像文件、qml行为脚本、网格文件)的名称将相对于演示的位置进行解析,除非它们使用绝对路径。这允许将所有资产捆绑到 Qt 资源系统中演示的旁边。

当前设置的 variantList 属性将修改从演示中加载的变体组和标签。请参阅 Q3DSPresentation::variantList 属性。


variantList : list<string>

存储在设置 source 属性时加载的 (变体组):(变体)标签的列表。如果此列表为空(默认值),则不应用变体过滤,并加载除演示中的变体标签之外的全部项目。变体机制允许一个演示项目包含演示的多个变体,而哪个变体系列被加载的决定在运行时基于 variantList

变体被划分为变体系列,例如,一个变体系列可以是 region,而该组中的变体可以是例如 US, EU, CH。另一个变体系列可以是例如 power,其变体可以是例如 gas, electric, diesel。为了筛选此例中的欧盟区域的电动变体,variantList 需要包含两个字符串 "region:EU" 和 "power:electric"。当然,演示项目需要包含这些变体系列和标签,并适当应用于演示内容。

当使用变体过滤器时,加载什么和不加载什么的决定是基于检查演示中的每个项目。

  • 如果项目没有变体标签,则将其加载。
  • 如果项目没有针对检查的变体系列定义标签,则将其加载。
  • 如果项目对变体系列有标签,则这些标签中的任何标签必须与该组中定义的过滤器的任何变体匹配。

如果项目不满足上述规则,则不会加载。


信号文档

customSignalEmitted(string elementPath, string name)

在 Qt 3D Studio 演演示中执行带有 Emit Signal 处理器的动作时发出。 elementPath 指定 目标对象,而 name 指定 信号名称

连接到此信号提供了一种在 Qt 3D Studio 演示中反应某些事件的方法。

在此示例中,按下或轻触 Cluster 对象将导致发出 customSignalEmitted("Cluster", "clusterPressed")

注意: 相应的处理程序是 onCustomSignalEmitted


elementsCreated(list<string> elementPaths, string error)

在 createElement() 或 createElements() 调用的响应下创建了一个或多个元素时发出。 elementPaths 列表包含已创建元素的元素路径。

如果创建失败,error 字符串指示原因。

注意:元素只能通过 C++ API 动态创建。

注意: 相应的处理程序是 onElementsCreated


materialsCreated(list<string> materialNames, string error)

当一或多个材质被创建以响应 createMaterial() 或 createMaterials() 调用时发出。materialNames 列表包含已创建材质的名称。如果材质被创建到子演示文稿中,名称前面将加上子演示文稿 ID 及其后面的冒号。

如果创建失败,error 字符串指示原因。

注意:材质只能通过 C++ API 动态创建。

注意:相应的处理程序是 onMaterialsCreated


meshesCreated(list<string> meshNames, string error)

当一或多个网格被创建以响应 createMesh() 或 createMeshes() 调用时发出。meshNames 列表包含已创建网格的名称。

如果创建失败,error 字符串指示原因。

注意:网格只能通过 C++ API 动态创建。

注意:相应的处理程序是 onMeshesCreated


shaderCacheExported(bool success)

当着色器缓存导出完成时发出。参数 success 表示导出是否成功。

注意:相应的处理程序是 onShaderCacheExported

此信号首次在 QtStudio3D.OpenGL 2.5 中引入。

另请参阅:exportShaderCache()shaderCacheFile


shaderCacheLoadErrors(string errors)

当着色器缓存加载失败时发出。errors 参数包含错误消息。

注意:相应的处理程序是 onShaderCacheLoadErrors

此信号首次在 QtStudio3D.OpenGL 2.7 中引入。


slideEntered(string elementPath, int index, string name)

在演示文稿或组件中的幻灯片被进入时发出。 elementPath 指定幻灯片路径。 indexname 包含进入的幻灯片的索引和名称。幻灯片索引从1开始。

此信号为每个组件发出,这意味着它可以在一个幻灯片更改时多次发出。

注意:相应的处理程序是 onSlideEntered


slideExited(string elementPath, int index, string name)

在演示文稿或组件中的幻灯片被退出时发出。 elementPath 指定幻灯片路径。 indexname 包含退出的幻灯片的索引和名称。幻灯片索引从1开始。

此信号为每个组件发出,这意味着它可以在一个幻灯片更改时多次发出。

注意:相应的处理程序是 onSlideExited


方法文档

exportShaderCache(bool binaryShaders, int compressionLevel)

导出当前使用的着色器,并将结果缓存以base64编码的形式输出到stderr。该函数提供了一种从没有可写磁盘的环境中提取着色器缓存的方法。base64输出需要转换为二进制表示才能用作着色器缓存文件。Qt 3D Studio Viewer提供了命令行参数--convert-shader-cache来执行此转换。

如果binaryShaders属性为true,则导出预编译着色器。否则,导出压缩的着色器源代码。导出的着色器使用compressionLevel指定的压缩级别进行压缩。-1表示默认qCompress压缩级别。0表示不压缩。

导出着色器缓存是一个异步操作。当导出完成时,会触发shaderCacheExported信号。

应该在所有应在应用程序启动时初始化的着色器都已初始化的应用程序执行点导出着色器缓存。

注意:只有在尚未从着色器缓存中原始加载任何着色器的情况下才支持导出着色器缓存。使用shaderCacheFile属性指定没有着色器缓存文件或空或无效的着色器缓存文件,可以允许着色器生成。

此方法是在QtStudio3D.OpenGL 2.7中引入的。

另请参阅:shaderCacheFileshaderCacheExportedqCompress


exportShaderCache(url shaderCacheFile, bool binaryShaders, int compressionLevel)

将当前使用的着色器写入由shaderCacheFile URL指定的文件。如果binaryShaders属性为true,则导出预编译着色器。否则,导出压缩的着色器源代码。导出的着色器使用compressionLevel指定的压缩级别进行压缩。-1表示默认qCompress压缩级别。0表示不压缩。

导出着色器缓存是一个异步操作。当导出完成时,会触发shaderCacheExported信号。

应该在所有应在应用程序启动时初始化的着色器都已初始化的应用程序执行点导出着色器缓存。

注意:只有在尚未从着色器缓存中原始加载任何着色器的情况下才支持导出着色器缓存。使用shaderCacheFile属性指定没有着色器缓存文件或空或无效的着色器缓存文件,可以允许着色器生成。

此方法是在QtStudio3D.OpenGL 2.7中引入的。

另请参阅:shaderCacheFileshaderCacheExportedqCompress


exportShaderCache(bool binaryShaders)

导出当前使用的着色器,并将结果缓存以base64编码的形式输出到stderr。该函数提供了一种从没有可写磁盘的环境中提取着色器缓存的方法。base64输出需要转换为二进制表示才能用作着色器缓存文件。Qt 3D Studio Viewer提供了命令行参数--convert-shader-cache来执行此转换。

如果binaryShaders属性为true,则导出预编译着色器。否则,导出压缩的着色器源代码。

导出着色器缓存是一个异步操作。当导出完成时,会触发shaderCacheExported信号。

应该在所有应在应用程序启动时初始化的着色器都已初始化的应用程序执行点导出着色器缓存。

注意:只有在尚未从着色器缓存中原始加载任何着色器的情况下才支持导出着色器缓存。使用shaderCacheFile属性指定没有着色器缓存文件或空或无效的着色器缓存文件,可以允许着色器生成。

此方法是在QtStudio3D.OpenGL 2.5中引入的。

另请参阅:shaderCacheFileshaderCacheExportedqCompress


exportShaderCache(url shaderCacheFile, bool binaryShaders)

将当前使用的着色器写入由shaderCacheFile URL指定的文件。如果binaryShaders属性为true,则导出预编译着色器。否则,导出压缩的着色器源代码。

导出着色器缓存是一个异步操作。当导出完成时,会触发shaderCacheExported信号。

应该在所有应在应用程序启动时初始化的着色器都已初始化的应用程序执行点导出着色器缓存。

注意:只有在尚未从着色器缓存中原始加载任何着色器的情况下才支持导出着色器缓存。使用shaderCacheFile属性指定没有着色器缓存文件或空或无效的着色器缓存文件,可以允许着色器生成。

此方法是在QtStudio3D.OpenGL 2.5中引入的。

另请参阅:shaderCacheFileshaderCacheExportedqCompress


var getDataInputs(string metadataKey)

返回具有指定metadataKey的用于此演示的数据输入列表。

另请参阅:DataInput


var getDataInputs()

返回此演示中定义的数据输入列表。使用 setDataInputValue() 接口通过数据输入名称设置数据输入值,或直接调用 Q3DSDataInput::setValue 设置特定数据输入。

另请参阅:DataInput


var getDataOutputs()

返回此演示中定义的数据输出列表。将槽连接到所需的 DataOutput 中的 valueChanged() 信号,在 DataOutput 追踪的值发生变化时接收通知。

另请参阅 Q3DSDataOutput.


preloadSlide(string elementPath)

elementPath 指定的幻灯片资源预载入内存。给定幻灯片所需的所有资源将在后台加载。

elementPath 是演示和组件中幻灯片的标识符。

演示、组件和幻灯片由英文冒号 “:” 分隔,例如 My-presentation:Scene.Layer.Speedometer:Main-slide。

如果 elementPath 不包含任何 “:”,则指定主演示中幻灯片的名称。如果它包含一个 “:”,则指定主演示中的组件:幻灯片;如果它包含两个 “:”,则指定演示:组件:幻灯片。

如果您想要表示子演示中的主幻灯片,则需要指定完整路径。例如 My-sub-presentation:Scene:Main-slide。

此函数仅在启用延迟加载时才有效。


unloadSlide(string elementPath)

从内存中卸载由 elementPath 指定的幻灯片资源。如果幻灯片是当前的,则资源将在幻灯片更改时卸载。

elementPath 是演示和组件中幻灯片的标识符。

演示、组件和幻灯片由英文冒号 “:” 分隔,例如 my-presentation:Scene.Layer.Speedometer:Main-slide。

如果 elementPath 不包含任何 “:”,则指定主演示中幻灯片的名称。如果它包含一个 “:”,则指定主演示中的组件:幻灯片;如果它包含两个 “:”,则指定演示:组件:幻灯片。

如果您想要表示子演示中的主幻灯片,则需要指定完整路径。例如 My-sub-presentation:Scene:Main-slide。

此函数仅在启用延迟加载时才有效。


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