本页内容

由...提供的 C++ 扩展点Qt Quick

所有 QML 应用程序均可通过 C++ 进行扩展,以便使用 C++ 代码中实现的附加功能,或提供基于 C++ 的 QML 插件。关于通过 C++ 扩展 QML 的内容,请参阅《使用 C++ 编写 QML 扩展》文档。

此外,Qt Quick 模块还为C++开发者提供了若干专属于该模块的扩展和集成点。特别是,它允许C++开发者创建并注册自定义的QQuickItem 派生类型,这些类型可由Qt Quick 进行渲染。它还提供了一些与场景图相关的类,允许开发者定义自己的渲染基元。

用户定义的从 QQuickItem 派生的类型

尽管Qt Quick 模块已经为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 场景图文档。

Pixmap 和多线程图像支持

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

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

© 2026 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.