QCanvasPainterFactory Class
QCanvasPainterFactory 负责管理QCanvasPainter 的实例及其关联的渲染引擎。更多内容...
| 标题: | #include <QCanvasPainterFactory> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS CanvasPainter) target_link_libraries(mytarget PRIVATE Qt6::CanvasPainter) |
| 自: | Qt 6.11 |
公共函数
| QCanvasPainterFactory() | |
| QCanvasPainter * | create(QRhi *rhi) |
| void | destroy() |
| bool | isValid() const |
| QCanvasRhiPaintDriver * | paintDriver() |
| QCanvasPainter * | painter() |
静态公共成员
| QCanvasPainterFactory * | sharedInstance(QRhi *rhi) |
详细说明
通过QCanvasPainter 进行渲染的应用程序不会自行创建画家类的实例,而是应使用QCanvasPainterFactory。
注意: 只有在未使用诸如 QCanvasPainterWidget 或QCanvasPainterItem 等便利类而直接使用QCanvasPainter 时,此类 才相关,因为这些类会向应用程序提供一个QCanvasPainter 实例。
以下是一个获取QCanvasPainter 以配合已成功初始化的QRhi 使用的示例代码片段:
std::unique_ptr<QCanvasPainterFactory> factory(new QCanvasPainterFactory);
QCanvasPainter *painter = factory->create(rhi);
QCanvasRhiPaintDriver *paintDriver = factory->paintDriver();建议所有在同一线程上操作同一QRhi 的绘图代码共享并复用同一个QCanvasPainter ,而不是在每个组件中都拥有专用的画家(以及相应的工厂)。这可以通过调用sharedInstance() 来实现,而不是构造一个新的 QCanvasPainterFactory:
QCanvasPainterFactory *factory = QCanvasPainterFactory::sharedInstance(rhi);
QCanvasPainter *painter = factory->painter();
QCanvasRhiPaintDriver *paintDriver = factory->paintDriver();成员函数文档
QCanvasPainterFactory::QCanvasPainterFactory()
构造函数。
另请参阅 sharedInstance()。
QCanvasPainter *QCanvasPainterFactory::create(QRhi *rhi)
如果该工厂尚未初始化QCanvasPainter 渲染基础设施,则对其进行初始化。
返回绘制器,若渲染器无法初始化,则返回 null。
该工厂将与rhi 相关联,且不能与其他QRhi 一起使用,除非再次调用destroy(),然后再次调用create()。
重复调用此函数不会产生任何效果,且无害。如果希望重新初始化绘图器基础架构(可能使用不同的rhi ),请先调用destroy()。
注意: 若已使用sharedInstance() 获取工厂实例,则无需 调用此函数。
另请参阅 destroy()、isValid() 和painter()。
void QCanvasPainterFactory::destroy()
拆除渲染基础设施。通常情况下无需调用此函数。该函数主要用于在调用此函数后紧接着调用create() 的情况。
另请参阅 create()。
bool QCanvasPainterFactory::isValid() const
如果已成功调用create(),则返回true。
QCanvasRhiPaintDriver *QCanvasPainterFactory::paintDriver()
返回绘制驱动程序对象;如果isValid()的返回值为false,则返回null。
注意: 返回的对象 不属于调用方。
QCanvasPainter *QCanvasPainterFactory::painter()
返回画图器;如果isValid()为false,则返回null。
注意: 返回的对象不属于调用方所有。
[static] QCanvasPainterFactory *QCanvasPainterFactory::sharedInstance(QRhi *rhi)
返回一个与给定的rhi 关联的QCanvasPainterFactory 实例。
使用相同的 `rhi ` 调用此函数时,将始终返回相同的 `QCanvasPainterFactory`。
无需对返回的工厂调用create(),且可立即查询painter(),因为结果始终已初始化,即isValid()返回true。
此函数是线程安全的。但是,QRhi 的线程规则照常适用:QRhi 对象,以及由此延伸的、与该QRhi 关联的QCanvasPainterFactory 、QCanvasRhiPaintDriver 和QCanvasPainter 实例,都应仅在同一个线程上使用。
注意: 返回的 QCanvasPainterFactory 不属于调用者所有,且当rhi 被销毁时,该对象将失效。
另请参阅 painter()。
© 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.