QCanvasPainterFactory Class
QCanvasPainterFactory gère les instances de ` QCanvasPainter ` et le moteur de rendu associé. En savoir plus...
| En-tête : | #include <QCanvasPainterFactory> |
| CMake : | find_package(Qt6 REQUIRED COMPONENTS CanvasPainter) target_link_libraries(mytarget PRIVATE Qt6::CanvasPainter) |
| Depuis : | Qt 6.11 |
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 utilisant le rendu via QCanvasPainter ne créent pas elles-mêmes d'instances de la classe de peinture, mais sont censées utiliser un QCanvasPainterFactory.
Remarque : cette classe n’est pertinente que lorsque l’on utilise QCanvasPainter sans classe de commodité telle que QCanvasPainterWidget ou QCanvasPainterItem, car celles-ci fournissent une instance de QCanvasPainter à l’application.
Voici un exemple de fragment de code permettant d’obtenir un ` QCanvasPainter ` à utiliser avec un ` QRhi` existant et correctement initialisé :
std::unique_ptr<QCanvasPainterFactory> factory(new QCanvasPainterFactory);
QCanvasPainter *painter = factory->create(rhi);
QCanvasRhiPaintDriver *paintDriver = factory->paintDriver();Il est recommandé que tout code de dessin s'exécutant sur le même thread avec la même instance ` QRhi ` partage et réutilise la même instance ` QCanvasPainter`, plutôt que d’avoir un `QCanvasPainter` (et donc une fabrique) dédié dans chaque composant. Pour ce faire, il suffit d’appeler ` sharedInstance()` au lieu de créer une nouvelle instance de `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 d'QCanvasPainter, si cela n'a pas déjà été fait pour cette factory.
Renvoie le « painter », ou null si le moteur de rendu n’a pas pu être initialisé.
L'usine sera associée à rhi et ne pourra être utilisée avec aucune autre QRhi, à moins que destroy() puis create() ne soient à nouveau appelés.
Les appels répétés à cette fonction n’ont aucun effet et sont sans conséquence. Appelez d’abord ` destroy()` si vous souhaitez réinitialiser l’infrastructure du peintre, é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()
Démonte l'infrastructure de rendu. En règle générale, il n'est pas nécessaire d'appeler cette fonction. Elle est plutôt utilisée dans les cas où elle est suivie d'un appel à ` create()`.
Voir également create().
bool QCanvasPainterFactory::isValid() const
Renvoie « true » si la fonction create() a été appelée avec succès.
QCanvasRhiPaintDriver *QCanvasPainterFactory::paintDriver()
Renvoie l'objet du pilote de dessin, ou null si isValid() est faux.
Remarque : l'objet renvoyé n'appartient pas à l'appelant.
QCanvasPainter *QCanvasPainterFactory::painter()
Renvoie le « painter », ou null si ` isValid()` est faux.
Remarque : l'objet renvoyé n'appartient pas à l'appelant.
[static] QCanvasPainterFactory *QCanvasPainterFactory::sharedInstance(QRhi *rhi)
Renvoie une instance de ` QCanvasPainterFactory ` associée à l'rhi` donné.
L'appel de cette fonction avec le même objet ` rhi ` renverra toujours le même objet ` QCanvasPainterFactory`.
Il n’est pas nécessaire d’appeler ` create()` sur l’usine renvoyée, et l’ painter() peut être interrogée immédiatement, car le résultat est toujours déjà initialisé, ce qui signifie que ` isValid()` renvoie `true`.
Cette fonction est sûre pour les threads. Cependant, les règles de gestion des threads d’ QRhi s’appliquent comme d’habitude : un objet QRhi, et par extension, une instance de QCanvasPainterFactory, QCanvasRhiPaintDriver et QCanvasPainter associée à ce QRhi, doivent toutes être utilisées sur un seul et même thread.
Remarque : l’objet QCanvasPainterFactory renvoyé n’appartient pas à l’appelant et devient invalide lorsque rhi est détruit.
Voir également 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.