Sur cette page

QCanvasPainterFactory Class

QCanvasPainterFactory gère les instances de QCanvasPainter et le moteur de rendu associé. Plus...

En-tête : #include <QCanvasPainterFactory>
CMake : find_package(Qt6 REQUIRED COMPONENTS CanvasPainter)
target_link_libraries(mytarget PRIVATE Qt6::CanvasPainter)
Depuis : Qt 6.11
Statut : Aperçu technique

Fonctions publiques

QCanvasPainterFactory()
QCanvasPainter *create(QRhi *rhi)
void destroy()
bool isValid() const
QCanvasRhiPaintDriver *paintDriver()
QCanvasPainter *painter()

Membres publics statiques

QCanvasPainterFactory *sharedInstance(QRhi *rhi)

Description détaillée

Les applications effectuant un rendu via QCanvasPainter ne créent pas d'instances de la classe painter elles-mêmes, mais sont censées utiliser une QCanvasPainterFactory.

Remarque : cette classe n'est utile que lorsque l'on travaille avec QCanvasPainter sans classe de commodité telle que QCanvasPainterWidget ou QCanvasPainterItem, car ces dernières fournissent une instance de QCanvasPainter à l'application.

Voici un exemple d'extrait de code permettant d'obtenir un QCanvasPainter à utiliser avec un QRhi existant et initialisé avec succès :

std::unique_ptr<QCanvasPainterFactory> factory(new QCanvasPainterFactory);
QCanvasPainter *painter = factory->create(rhi);
QCanvasRhiPaintDriver *paintDriver = factory->paintDriver();

Il est recommandé à tous les codes de dessin qui opèrent sur le même thread avec le même QRhi de partager et de réutiliser le même QCanvasPainter, au lieu d'avoir un peintre dédié (et donc une fabrique) dans chaque composant. Ceci peut être réalisé en appelant sharedInstance(), au lieu de construire un nouveau QCanvasPainterFactory :

QCanvasPainterFactory *factory = QCanvasPainterFactory::sharedInstance(rhi);
QCanvasPainter *painter = factory->painter();
QCanvasRhiPaintDriver *paintDriver = factory->paintDriver();

Documentation des fonctions membres

QCanvasPainterFactory::QCanvasPainterFactory()

Constructeur.

Voir aussi sharedInstance().

QCanvasPainter *QCanvasPainterFactory::create(QRhi *rhi)

Initialise l'infrastructure de rendu QCanvasPainter, si cela n'a pas déjà été fait pour cette fabrique.

Retourne le peintre, ou null si le moteur de rendu n'a pas pu être initialisé.

La fabrique sera associée à rhi, et ne pourra pas être utilisée avec d'autres QRhi, à moins que destroy(), puis create() ne soient appelés à nouveau.

Les appels répétés à cette fonction n'ont aucun effet et sont inoffensifs. Appelez d'abord destroy() si vous souhaitez réinitialiser l'infrastructure de peinture, éventuellement avec un autre rhi.

Remarque : il n'est pas nécessaire d'appeler cette fonction lorsque sharedInstance() a été utilisé pour récupérer une instance d'usine.

Voir également destroy(), isValid() et painter().

void QCanvasPainterFactory::destroy()

Supprime l'infrastructure de rendu. Normalement, il n'est pas nécessaire d'appeler cette fonction. Elle est plutôt utilisée dans les situations où elle sera suivie d'un create().

Voir également create().

bool QCanvasPainterFactory::isValid() const

Retourne vrai si la fonction create() a été appelée avec succès.

QCanvasRhiPaintDriver *QCanvasPainterFactory::paintDriver()

Renvoie l'objet du pilote de peinture, ou null si isValid() est faux.

Remarque : l'objet retourné n'appartient pas à l'appelant.

QCanvasPainter *QCanvasPainterFactory::painter()

Renvoie le peintre, ou null si isValid() est faux.

Note : L'objet retourné n'appartient pas à l'appelant.

[static] QCanvasPainterFactory *QCanvasPainterFactory::sharedInstance(QRhi *rhi)

Renvoie une instance de QCanvasPainterFactory associée à rhi.

L'appel de cette fonction avec le même rhi renverra toujours le même QCanvasPainterFactory.

Il n'est pas nécessaire d'appeler create() sur l'usine renvoyée, et painter() peut être interrogé immédiatement, car le résultat est toujours déjà initialisé, ce qui signifie que isValid() renvoie true.

Cette fonction est sans risque pour les threads. Cependant, les règles de threading de QRhi s'appliquent comme d'habitude : un objet QRhi, et par extension, une instance de QCanvasPainterFactory, QCanvasRhiPaintDriver, et QCanvasPainter associée à cette QRhi sont tous censés être utilisés sur le même thread unique.

Remarque : l'objet QCanvasPainterFactory renvoyé n'appartient pas à l'appelant et devient invalide lorsque rhi est détruit.

Voir aussi 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.