Sur cette page

QPaintDevice Class

La classe QPaintDevice est la classe de base des objets qui peuvent être peints avec QPainter. Plus...

En-tête : #include <QPaintDevice>
CMake : find_package(Qt6 REQUIRED COMPONENTS Gui)
target_link_libraries(mytarget PRIVATE Qt6::Gui)
qmake : QT += gui
Inherited By :

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 dispositif de peinture est une abstraction d'un espace bidimensionnel sur lequel on peut dessiner à l'aide d'un QPainter. Son système de coordonnées par défaut a son origine située en haut à gauche. X augmente vers la droite et Y augmente vers le bas. L'unité est le pixel.

Les capacités de dessin de QPaintDevice sont actuellement mises en œuvre par les sous-classes QWidget, QImage, QPixmap, QPicture, et QPrinter.

Pour mettre en œuvre la prise en charge d'un nouveau backend, vous devez dériver de QPaintDevice et réimplémenter la fonction virtuelle paintEngine() pour indiquer à QPainter quel moteur de peinture doit être utilisé pour dessiner sur ce périphérique particulier. Notez que vous devez également créer un moteur de peinture correspondant pour pouvoir dessiner sur le périphérique, c'est-à-dire dériver de QPaintEngine et réimplémenter ses fonctions virtuelles.

Attention : Qt exige qu'un objet QGuiApplication existe avant de pouvoir créer des périphériques de peinture. Les périphériques de peinture accèdent aux ressources du système de fenêtres, 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, les 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 la largeur du dispositif en unités du système de coordonnées par défaut et en millimètres, respectivement. Il est également possible d'utiliser la fonction protégée metric() pour récupérer les informations métriques en spécifiant l'adresse PaintDeviceMetric souhaitée en tant qu'argument.

Les fonctions logicalDpiX() et logicalDpiY() renvoient la résolution horizontale et verticale de l'appareil en points par pouce. Les fonctions physicalDpiX() et physicalDpiY() renvoient également la résolution de l'appareil en points par pouce, mais notez que si la résolution logique et physique diffère, la fonction QPaintEngine correspondante doit gérer la correspondance. Enfin, la fonction colorCount() renvoie le nombre de couleurs différentes disponibles pour le périphérique de peinture.

Voir également QPaintEngine, QPainter, Coordinate System (système de coordonnées) et Paint System (système de peinture).

Documentation sur les types de membres

enum QPaintDevice::PaintDeviceMetric

Décrit les différentes mesures d'un dispositif de peinture.

ConstanteValeurDescription
QPaintDevice::PdmWidth1Largeur du dispositif de peinture dans les unités du système de coordonnées par défaut (par exemple, pixels pour QPixmap et QWidget). Voir également width().
QPaintDevice::PdmHeight2La hauteur du dispositif de peinture en unités du système de coordonnées par défaut (par exemple, pixels pour QPixmap et QWidget). Voir également height().
QPaintDevice::PdmWidthMM3La largeur du dispositif de peinture en millimètres. Voir également widthMM().
QPaintDevice::PdmHeightMM4La hauteur du dispositif de peinture en millimètres. Voir également heightMM().
QPaintDevice::PdmNumColors5Le nombre de couleurs différentes disponibles pour le dispositif de peinture. Voir aussi colorCount().
QPaintDevice::PdmDepth6La profondeur de bits (nombre de plans de bits) du dispositif de peinture. Voir aussi depth().
QPaintDevice::PdmDpiX7La résolution horizontale du dispositif en points par pouce. Voir aussi logicalDpiX().
QPaintDevice::PdmDpiY8La résolution verticale du dispositif en points par pouce. Voir aussi logicalDpiY().
QPaintDevice::PdmPhysicalDpiX9La résolution horizontale de l'appareil en points par pouce. Voir aussi physicalDpiX().
QPaintDevice::PdmPhysicalDpiY10La résolution verticale de l'appareil en points par pouce. Voir aussi physicalDpiY().
QPaintDevice::PdmDevicePixelRatio11Le rapport de pixel du périphérique. Les valeurs courantes sont 1 pour les écrans à ppp normal et 2 pour les écrans "rétina" à ppp élevé.
QPaintDevice::PdmDevicePixelRatioScaled12Le rapport de pixel du périphérique mis à l'échelle pour le périphérique. Il est identique à PdmDevicePixelRatio, sauf que la valeur est mise à l'échelle par un facteur constant afin de prendre en charge les dispositifs de peinture avec des facteurs d'échelle fractionnaires. Le facteur d'échelle constant utilisé est devicePixelRatioFScale(). Cette valeur de la liste a été introduite dans Qt 5.6.
QPaintDevice::PdmDevicePixelRatioF_EncodedA (since Qt 6.8)13Cet élément de l'enum, ainsi que l'élément B correspondant, sont utilisés ensemble pour le rapport de pixel du périphérique, en tant que valeur à virgule flottante encodée double. Une sous-classe QPaintDevice qui prend en charge les valeurs fractionnaires de DPR doit mettre en œuvre la prise en charge de ces deux éléments dans sa surcharge de la fonction metric(). La valeur de retour est censée être le 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()

Construit un dispositif de peinture. Ce constructeur ne peut être invoqué que par les sous-classes de QPaintDevice.

[virtual noexcept] QPaintDevice::~QPaintDevice()

Détruit le périphérique de peinture et libère les ressources du système de fenêtres.

int QPaintDevice::colorCount() const

Renvoie le nombre de couleurs différentes disponibles pour le dispositif de peinture. Si le nombre de couleurs disponibles est trop important pour être représenté par le type de données int, INT_MAX sera renvoyé à la place.

int QPaintDevice::depth() const

Renvoie la profondeur de bits (nombre de plans de bits) du périphérique de peinture.

qreal QPaintDevice::devicePixelRatio() const

Renvoie le rapport de pixels de l'appareil.

Les valeurs courantes sont 1 pour les écrans à ppp normal et 2 pour les écrans "rétina" à ppp élevé.

qreal QPaintDevice::devicePixelRatioF() const

Renvoie le rapport de pixels du périphérique sous la forme d'un nombre à virgule flottante.

[static, since 6.8] int QPaintDevice::encodeMetricF(QPaintDevice::PaintDeviceMetric metric, double value)

Renvoie value encodé pour la métrique metric. Les sous-classes qui implémentent metric() doivent utiliser cette fonction pour coder

ConstanteDescription
asune valeur de retour entière lorsque la métrique de la requête spécifie une valeur encodée en virgule flottante.

Cette fonction a été introduite dans Qt 6.8.

int QPaintDevice::height() const

Renvoie la hauteur du dispositif de peinture dans les unités du système de coordonnées par défaut (par exemple, pixels pour QPixmap et QWidget).

Voir également heightMM().

int QPaintDevice::heightMM() const

Renvoie la hauteur du dispositif de peinture en millimètres. En raison des limitations de la plate-forme, il peut être impossible d'utiliser cette fonction pour déterminer la taille physique réelle d'un widget sur 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. Pour X11, cette résolution est généralement la même que celle qui pourrait être calculée à partir de widthMM().

Notez que si le logicalDpiX() n'est pas égal à physicalDpiX(), le QPaintEngine correspondant doit gérer la correspondance de la résolution.

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. Pour X11, c'est généralement la même que celle qui pourrait être calculée à partir de heightMM().

Notez que si le logicalDpiY() n'est pas égal à physicalDpiY(), le QPaintEngine correspondant doit gérer le mappage de la résolution.

Voir également logicalDpiX() et physicalDpiY().

[virtual protected] int QPaintDevice::metric(QPaintDevice::PaintDeviceMetric metric) const

Renvoie les informations métriques pour le périphérique de peinture donné metric.

Voir également PaintDeviceMetric.

[pure virtual] QPaintEngine *QPaintDevice::paintEngine() const

Renvoie un pointeur sur le moteur de peinture utilisé pour dessiner sur le périphérique.

bool QPaintDevice::paintingActive() const

Renvoie true si le périphérique est en train d'être peint, c'est-à-dire que quelqu'un a appelé QPainter::begin() mais pas encore QPainter::end() pour ce périphérique ; sinon, renvoie false.

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

Notez que si la valeur de physicalDpiX() n'est pas égale à celle de logicalDpiX(), c'est la valeur correspondante de QPaintEngine qui doit prendre en charge la conversion de la 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 peinture.

Notez que si le PhysicalDpiY() n'est pas égal au logicalDpiY(), le QPaintEngine correspondant doit gérer le mappage de la résolution.

Voir également physicalDpiX() et logicalDpiY().

int QPaintDevice::width() const

Renvoie la largeur du dispositif de peinture dans les unités du système de coordonnées par défaut (par exemple, pixels pour QPixmap et QWidget).

Voir également widthMM().

int QPaintDevice::widthMM() const

Renvoie la largeur du dispositif de peinture en millimètres. En raison des limitations de la plate-forme, il peut être impossible d'utiliser cette fonction pour déterminer la taille physique réelle d'un widget sur 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.