C++ 扩展点提供者Qt Quick

所有 QML 应用程序都可以用 C++ 扩展,以便使用 C++ 代码实现的附加功能或提供基于 C++ 的 QML 插件。有关从 C++ 扩展 QML 的主题,请参阅Writing QML Extensions with C++文档。

此外,Qt Quick 模块还为 C++ 开发人员提供了几个专门针对该模块的扩展和集成点。特别是,它允许 C++ 开发人员创建和注册可由Qt Quick 渲染的自定义QQuickItem 派生类型。它还提供了几个与场景图相关的类,允许开发人员定义自己的渲染基元。

用户定义的 QQ 快速项目派生类型

虽然Qt Quick 模块已经提供了丰富的可视化项目类型库,供 QML 应用程序使用,但有些开发者可能希望用 C++ 定义自己的项目派生类型,并把它们暴露给 QML 类型系统。最简单的方法就是子类化QQuickItem ,它是Qt Quick 模块中所有可视化类型的基础类型。详见QQuickItem 文档。

Qt Quick 2 使用基于图形 API(如 OpenGL ES、OpenGL、Vulkan、Metal 或 Direct 3D)的专用场景图进行渲染。使用图形场景图而不是传统的命令式绘制系统( 和类似系统),意味着要渲染的场景可以在帧与帧之间保留,并且在渲染开始前就知道要渲染的整套基元。这样就可以进行大量优化,例如批量调用 OpenGL 绘制以尽量减少状态变化或丢弃模糊的基元。该QPainter Qt Quick C++ API提供了各种类,可以用 C++ 创建自定义节点。详情请查看Qt Quick Scene Graph文档。

像素图和线程图像支持

QML 引擎允许 QML 应用程序从文件系统或网络资源加载图像,但有些应用程序可能需要从基于 C++ 的进程加载图像。这可通过QQuickImageProvider 类实现,该类为 QML 应用程序提供像素图加载和线程图像请求支持。任何通过特殊的 "image: "URL 方案请求图像的 QML 应用程序,都将被引导到适当的图像提供者处加载图像。

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

© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.