Qt Quick 提供的 C++ 扩展点

所有 QML 应用都可以通过 C++ 扩展以使用 C++ 代码中实现的附加功能,或者为了提供一个基于 C++ 的 QML 插件。关于从 C++ 扩展 QML 的主题,请参阅 使用 C++ 编写 QML 扩展 文档。

此外,Qt Quick 模块还为 C++ 开发者提供了一些特定于该模块的扩展和集成点。特别是,它允许 C++ 开发者创建和注册自定义 QQuickItem 派生类型,这些类型可以被 Qt Quick 渲染。它还提供了一些场景图相关的类,允许开发者定义自己的渲染原语。

用户定义的 QQuickItem 派生类型

虽然 Qt Quick 模块已经为 QML 应用程序提供了一系列视觉项类型用于在 QML 应用程序中使用,但一些开发者可能希望在 C++ 中定义自己的项派生类型并将其暴露给 QML 类型系统。最简单的方法是继承 QQuickItem,这是 Qt Quick 模块中所有视觉类型的基本类型。有关详细信息,请参阅 QQuickItem 文档。

Qt Quick 2 采用了基于 OpenGL ES、OpenGL、Vulkan、Metal 或 Direct 3D 等图形 API 的专用场景图进行渲染。使用场景图进行图形渲染而不是传统的命令式绘制系统(如 QPainter 和类似),意味着可以保留要在帧之间渲染的场景,并且在开始渲染之前就知道了要完全渲染的原语集。这为许多优化打开了大门,例如批处理 OpenGL 绘制调用以最小化状态变化或丢弃被遮挡的原语。Qt Quick C++ API 提供了各种类,允许在 C++ 中创建自定义节点。有关详细信息,请参阅 Qt Quick 场景图 文档。

位图和线程图像支持

虽然 QML 引擎允许 QML 应用从文件系统或网络资源加载图像,但某些应用程序可能需要加载来自基于 C++ 的进程的图像的额外选项。这可以通过提供对位图加载和线程图像请求支持 QQuickImageProvider 类来实现。任何请求通过特殊 "image:" URL 方案的图像的 QML 应用程序都将被引导到适当的图像提供程序以加载图像。

有关更多信息,请参阅 QQuickImageProvider 文档。

© 2024 Qt公司有限公司。本文件中包含的文档贡献者各自的版权。本文件中提供的文档是根据自由软件基金会发布的GNU自由文档许可证版本1.3的规定进行许可的。Qt及其相关标志是Qt公司在芬兰和/或其他国家的注册商标。所有其他商标均为其各自所有者的财产。