Sur cette page

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

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.

ConstanteValeurDescription
QPaintDevice::PdmWidth1La 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::PdmHeight2La 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::PdmWidthMM3La largeur du périphérique de dessin en millimètres. Voir également widthMM().
QPaintDevice::PdmHeightMM4La hauteur du périphérique de dessin en millimètres. Voir également heightMM().
QPaintDevice::PdmNumColors5Le nombre de couleurs différentes disponibles pour le dispositif de peinture. Voir également colorCount().
QPaintDevice::PdmDepth6La profondeur de bits (nombre de plans de bits) du périphérique de dessin. Voir aussi depth().
QPaintDevice::PdmDpiX7La résolution horizontale du périphérique en points par pouce. Voir aussi logicalDpiX().
QPaintDevice::PdmDpiY8La résolution verticale du périphérique, exprimée en points par pouce. Voir également logicalDpiY().
QPaintDevice::PdmPhysicalDpiX9La résolution horizontale du périphérique en points par pouce. Voir aussi physicalDpiX().
QPaintDevice::PdmPhysicalDpiY10La résolution verticale de l'appareil en points par pouce. Voir également physicalDpiY().
QPaintDevice::PdmDevicePixelRatio11Le 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::PdmDevicePixelRatioScaled12Le 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)13Cet é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)14Voir 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

ConstanteDescription
asune 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.