Dispositifs de peinture et backends
Création d'un dispositif de peinture
La classe QPaintDevice est la classe de base des objets qui peuvent être peints, c'est-à-dire que QPainter peut dessiner sur n'importe quelle sous-classe de QPaintDevice. QPaintDevice Les capacités de dessin de QPixmap sont notamment mises en œuvre par QWidget, QImage, , QPicture, QPrinter et QOpenGLPaintDevice.
| Widget La classe QWidget est la classe de base des éléments de l'interface utilisateur dans le module Qt Widgets module. Elle reçoit la souris, le clavier et d'autres événements du système de fenêtres, et peint une représentation d'elle-même sur l'écran. |
| Image La classe QImage fournit une représentation d'image indépendante du matériel, conçue et optimisée pour les E/S, ainsi que pour l'accès direct aux pixels et leur manipulation. QImage prend en charge plusieurs formats d'image, notamment les images monochromes, 8 bits, 32 bits et les images à mélange alpha. L'un des avantages de l'utilisation de QImage comme dispositif de peinture est qu'il est possible de garantir l'exactitude des pixels de toute opération de dessin, indépendamment de la plate-forme. Un autre avantage est que la peinture peut être effectuée dans un autre thread que celui de l'interface graphique en cours. |
| Pixmap La classe QPixmap est une représentation d'image hors écran conçue et optimisée pour afficher des images à l'écran. Contrairement à QImage, les données relatives aux pixels d'un pixmap sont internes et gérées par le système de fenêtres sous-jacent, c'est-à-dire que l'on ne peut accéder aux pixels que par l'intermédiaire des fonctions QPainter ou en convertissant la classe QPixmap en QImage. Pour optimiser le dessin avec QPixmap, Qt fournit la classe QPixmapCache qui peut être utilisée pour stocker des pixmaps temporaires qui sont coûteux à générer sans utiliser plus d'espace de stockage que la limite du cache. Qt fournit également la classe de commodité QBitmap, héritant de QPixmap. QBitmap garantit des pixmaps monochromes (profondeur de 1 bit) et est principalement utilisée pour créer des objets QCursor et QBrush personnalisés, construire des objets QRegion. |
| Dispositif de peinture OpenGL Comme mentionné précédemment, Qt propose des classes qui facilitent l'utilisation d'OpenGL dans les applications Qt. Par exemple, la classe QOpenGLPaintDevice active l'API OpenGL pour le rendu avec QPainter. |
| Image La classe QPicture est un dispositif de peinture qui enregistre et reproduit les commandes QPainter. Une image sérialise les commandes de peinture vers un périphérique IO dans un format indépendant de la plate-forme. QPicture est également indépendant de la résolution, c'est-à-dire qu'une image QPicture peut être affichée sur différents périphériques (par exemple svg, pdf, ps, imprimante et écran) en ayant la même apparence. Qt XML fournit les fonctions QPicture::load() et QPicture::save() ainsi que des opérateurs de flux pour le chargement et l'enregistrement d'images. |
| Backends personnalisés La prise en charge d'un nouveau backend peut être mise en œuvre en dérivant de la classe QPaintDevice et en réimplémentant la fonction virtuelle QPaintDevice::paintEngine() pour indiquer à QPainter quel moteur de peinture doit être utilisé pour dessiner sur ce périphérique particulier. Pour pouvoir dessiner sur l'appareil, ce moteur de peinture doit être un moteur de peinture personnalisé créé en dérivant de la classe QPaintEngine. |
© 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.