QPaintDevice Class
La classe `QPaintDevice` est la classe de base des objets sur lesquels il est possible de dessiner à l'aide de ` QPainter`. En savoir plus...
| En-tête : | #include <QPaintDevice> |
| CMake : | find_package(Qt6 REQUIRED COMPONENTS Gui) target_link_libraries(mytarget PRIVATE Qt6::Gui) |
| qmake : | QT += gui |
| Hérité par : | QImage, QOpenGLPaintDevice, QPagedPaintDevice, QPaintDeviceWindow, QPicture, QPixmap, QSvgGenerator, et QWidget |
- Liste de tous les membres, y compris les membres hérités
- QPaintDevice fait partie des classes de peinture.
Types publics
| enum | PaintDeviceMetric { PdmWidth, PdmHeight, PdmWidthMM, PdmHeightMM, PdmNumColors, …, PdmDevicePixelRatioF_EncodedB } |
Fonctions publiques
| virtual | ~QPaintDevice() |
| int | colorCount() const |
| int | depth() const |
| qreal | devicePixelRatio() const |
| qreal | devicePixelRatioF() const |
| int | height() const |
| int | heightMM() const |
| int | logicalDpiX() const |
| int | logicalDpiY() const |
| virtual QPaintEngine * | paintEngine() const = 0 |
| bool | paintingActive() const |
| int | physicalDpiX() const |
| int | physicalDpiY() const |
| int | width() const |
| int | widthMM() const |
Membres publics statiques
(since 6.8) int | encodeMetricF(QPaintDevice::PaintDeviceMetric metric, double value) |
Fonctions protégées
| QPaintDevice() | |
| virtual int | metric(QPaintDevice::PaintDeviceMetric metric) const |
Description détaillée
Un périphérique de dessin est une abstraction d'un espace bidimensionnel sur lequel il est possible de dessiner à l'aide d'une classe ` QPainter`. Son système de coordonnées par défaut a son origine située en haut à gauche. L'axe X augmente vers la droite et l'axe Y augmente vers le bas. L'unité de mesure est le pixel.
Les capacités de dessin de QPaintDevice sont actuellement implémentées par les sous-classes QWidget, QImage, QPixmap, QPicture et QPrinter.
Pour implémenter la prise en charge d’un nouveau backend, vous devez dériver de QPaintDevice et réimplémenter la fonction virtuelle ` paintEngine()` afin d’indiquer à ` QPainter ` quel moteur de dessin doit être utilisé pour dessiner sur ce périphérique particulier. Notez que vous devez également créer un moteur de dessin correspondant pour pouvoir dessiner sur le périphérique, c’est-à-dire dériver de ` QPaintEngine ` et réimplémenter ses fonctions virtuelles.
Avertissement : Qt exige qu’un objet ` QGuiApplication ` existe avant que tout périphérique de dessin puisse être créé. Les périphériques de dessin accèdent aux ressources du système de fenêtrage, et ces ressources ne sont pas initialisées avant la création d’un objet d’application.
La classe `QPaintDevice` fournit plusieurs fonctions renvoyant les différentes mesures du périphérique : la fonction ` depth()` renvoie sa profondeur de bits (nombre de plans de bits). La fonction ` height()` renvoie sa hauteur dans les unités du système de coordonnées par défaut (par exemple, en pixels pour ` QPixmap ` et ` QWidget`), tandis que ` heightMM()` renvoie la hauteur du périphérique en millimètres. De même, les fonctions width() et widthMM() renvoient respectivement la largeur de l’appareil en unités du système de coordonnées par défaut et en millimètres. Il est également possible d’utiliser la fonction protégée metric() pour récupérer les informations métriques en spécifiant l’ PaintDeviceMetric e souhaitée comme argument.
Les fonctions ` logicalDpiX()` et ` logicalDpiY()` renvoient respectivement la résolution horizontale et verticale du périphérique en points par pouce. Les fonctions ` physicalDpiX()` et ` physicalDpiY()` renvoient également la résolution du périphérique en points par pouce, mais notez que si la résolution logique et la résolution physique diffèrent, l’ QPaintEngine e correspondant doit gérer la mise en correspondance. Enfin, la fonction colorCount() renvoie le nombre de couleurs différentes disponibles pour le périphérique de dessin.
Voir également « QPaintEngine» , « QPainter », «Système de coordonnées» et «Système de peinture».
Documentation sur les types de membres
enum QPaintDevice::PaintDeviceMetric
Décrit les différents indicateurs d'un dispositif de peinture.
| Constante | Valeur | Description |
|---|---|---|
QPaintDevice::PdmWidth | 1 | La largeur du périphérique de dessin exprimée en unités du système de coordonnées par défaut (par exemple, en pixels pour QPixmap et QWidget). Voir également width(). |
QPaintDevice::PdmHeight | 2 | La hauteur du périphérique de dessin exprimée dans les unités du système de coordonnées par défaut (par exemple, en pixels pour QPixmap et QWidget). Voir également height(). |
QPaintDevice::PdmWidthMM | 3 | La largeur du périphérique de dessin en millimètres. Voir également widthMM(). |
QPaintDevice::PdmHeightMM | 4 | La hauteur du périphérique de dessin en millimètres. Voir également heightMM(). |
QPaintDevice::PdmNumColors | 5 | Le nombre de couleurs différentes disponibles pour le dispositif de peinture. Voir également colorCount(). |
QPaintDevice::PdmDepth | 6 | La profondeur de bits (nombre de plans de bits) du périphérique de dessin. Voir aussi depth(). |
QPaintDevice::PdmDpiX | 7 | La résolution horizontale du périphérique en points par pouce. Voir aussi logicalDpiX(). |
QPaintDevice::PdmDpiY | 8 | La résolution verticale du périphérique, exprimée en points par pouce. Voir également logicalDpiY(). |
QPaintDevice::PdmPhysicalDpiX | 9 | La résolution horizontale du périphérique en points par pouce. Voir aussi physicalDpiX(). |
QPaintDevice::PdmPhysicalDpiY | 10 | La résolution verticale de l'appareil en points par pouce. Voir également physicalDpiY(). |
QPaintDevice::PdmDevicePixelRatio | 11 | Le rapport de pixels du périphérique. Les valeurs courantes sont 1 pour les écrans à dpi normal et 2 pour les écrans « Retina » à haute résolution. |
QPaintDevice::PdmDevicePixelRatioScaled | 12 | Le rapport de pixels du périphérique mis à l'échelle. Cette valeur est identique à PdmDevicePixelRatio, à la différence près qu'elle est multipliée par un facteur constant afin de prendre en charge les périphériques de dessin présentant des facteurs d'échelle fractionnaires. Le facteur de mise à l'échelle constant utilisé est devicePixelRatioFScale(). Cette valeur d'énumération a été introduite dans Qt 5.6. |
QPaintDevice::PdmDevicePixelRatioF_EncodedA (since Qt 6.8) | 13 | Cet élément d’énumération, associé à l’élément correspondant « B », est utilisé conjointement pour le rapport de pixels du périphérique, sous la forme d’une valeur flottante codée de type « double ». Une sous-classe de ` QPaintDevice ` prenant en charge les valeurs de DPR fractionnaires doit implémenter la prise en charge de ces deux éléments d’énumération dans sa redéfinition de la fonction ` metric()`. La valeur renvoyée doit correspondre au résultat de la fonction ` encodeMetricF()`. |
QPaintDevice::PdmDevicePixelRatioF_EncodedB (since Qt 6.8) | 14 | Voir PdmDevicePixelRatioF_EncodedA. |
Voir également metric() et devicePixelRatio().
Documentation des fonctions membres
[noexcept protected] QPaintDevice::QPaintDevice()
Crée un périphérique de dessin. Ce constructeur ne peut être appelé qu'à partir de sous-classes de QPaintDevice.
[virtual noexcept] QPaintDevice::~QPaintDevice()
Supprime le dispositif de dessin et libère les ressources système de la fenêtre.
int QPaintDevice::colorCount() const
Renvoie le nombre de couleurs différentes disponibles pour le périphérique de dessin. Si le nombre de couleurs disponibles est trop élevé pour être représenté par le type de données `int`, la valeur `INT_MAX` est alors renvoyée à la place.
int QPaintDevice::depth() const
Renvoie la profondeur de bits (nombre de plans de bits) du périphérique de dessin.
qreal QPaintDevice::devicePixelRatio() const
Renvoie le rapport de pixels de l'appareil.
Les valeurs courantes sont 1 pour les écrans à résolution normale et 2 pour les écrans « Retina » à haute résolution.
qreal QPaintDevice::devicePixelRatioF() const
Renvoie le rapport de pixels de l'appareil sous forme de nombre à virgule flottante.
[static, since 6.8] int QPaintDevice::encodeMetricF(QPaintDevice::PaintDeviceMetric metric, double value)
Renvoie une valeur encodée selon la norme value pour la métrique metric. Les sous-classes implémentant la méthode metric() doivent utiliser cette fonction pour encoder
| Constante | Description |
|---|---|
as | une valeur de retour entière lorsque la métrique de requête spécifie une valeur à virgule flottante encodée. |
Cette fonction a été introduite dans Qt 6.8.
int QPaintDevice::height() const
Renvoie la hauteur du périphérique de dessin en unités du système de coordonnées par défaut (par exemple, en pixels pour QPixmap et QWidget).
Voir aussi heightMM().
int QPaintDevice::heightMM() const
Renvoie la hauteur du périphérique de dessin en millimètres. En raison des limitations de la plateforme, il se peut que cette fonction ne permette pas de déterminer la taille physique réelle d'un widget à l'écran.
Voir également height().
int QPaintDevice::logicalDpiX() const
Renvoie la résolution horizontale du périphérique en points par pouce, utilisée pour calculer la taille des polices. Sous X11, cette valeur correspond généralement à celle obtenue à partir de la fonction ` widthMM()`.
Notez que si la valeur de `logicalDpiX()` n'est pas égale à celle de ` physicalDpiX()`, la fonction ` QPaintEngine ` correspondante doit gérer la mise en correspondance des résolutions.
Voir également logicalDpiY() et physicalDpiX().
int QPaintDevice::logicalDpiY() const
Renvoie la résolution verticale du périphérique en points par pouce, utilisée pour calculer la taille des polices. Sous X11, cette valeur correspond généralement à celle obtenue via la fonction ` heightMM()`.
Notez que si la valeur renvoyée par `logicalDpiY()` ne correspond pas à celle de ` physicalDpiY()`, la fonction ` QPaintEngine ` correspondante doit gérer la conversion de résolution.
Voir également logicalDpiX() et physicalDpiY().
[virtual protected] int QPaintDevice::metric(QPaintDevice::PaintDeviceMetric metric) const
Renvoie les informations métriques relatives au périphérique de dessin spécifié metric.
Voir également PaintDeviceMetric.
[pure virtual] QPaintEngine *QPaintDevice::paintEngine() const
Renvoie un pointeur vers le moteur de rendu utilisé pour dessiner sur le périphérique.
bool QPaintDevice::paintingActive() const
Renvoie « true » si le périphérique est en cours de dessin, c'est-à-dire si quelqu'un a appelé la fonction ` QPainter::begin()` mais n'a pas encore appelé la fonction ` QPainter::end()` pour ce périphérique ; sinon, renvoie « false ».
Voir également QPainter::isActive().
int QPaintDevice::physicalDpiX() const
Renvoie la résolution horizontale de l'appareil en points par pouce. Par exemple, lors de l'impression, cette résolution correspond à la résolution physique de l'imprimante. Le DPI logique, quant à lui, correspond à la résolution utilisée par le moteur de rendu.
Notez que si la valeur renvoyée par physicalDpiX() n'est pas égale à celle de logicalDpiX(), l'QPaintEngine correspondante doit gérer la conversion de résolution.
Voir également physicalDpiY() et logicalDpiX().
int QPaintDevice::physicalDpiY() const
Renvoie la résolution horizontale de l'appareil en points par pouce. Par exemple, lors de l'impression, cette résolution fait référence à la résolution physique de l'imprimante. Le DPI logique, quant à lui, fait référence à la résolution utilisée par le moteur de dessin proprement dit.
Notez que si la valeur renvoyée par physicalDpiY() n'est pas égale à celle de logicalDpiY(), l'QPaintEngine e correspondante doit gérer la conversion de résolution.
Voir également physicalDpiX() et logicalDpiY().
int QPaintDevice::width() const
Renvoie la largeur du périphérique de dessin en unités du système de coordonnées par défaut (par exemple, en pixels pour QPixmap et QWidget).
Voir également widthMM().
int QPaintDevice::widthMM() const
Renvoie la largeur du périphérique de dessin en millimètres. En raison des limitations de la plateforme, il se peut que cette fonction ne permette pas de déterminer la taille physique réelle d'un widget à l'écran.
Voir également width().
© 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.