QPainter Class
La classe `QPainter` effectue des opérations de dessin de bas niveau sur les widgets et autres périphériques de dessin. En savoir plus...
| En-tête : | #include <QPainter> |
| CMake : | find_package(Qt6 REQUIRED COMPONENTS Gui) target_link_libraries(mytarget PRIVATE Qt6::Gui) |
| qmake : | QT += gui |
| Hérité par : |
- Liste de tous les membres, y compris les membres hérités
- QPainter fait partie des classes de peinture.
Remarque : toutes les fonctions de cette classe sont réentrantes.
Types publics
| class | PixmapFragment |
| enum | CompositionMode { CompositionMode_SourceOver, CompositionMode_DestinationOver, CompositionMode_Clear, CompositionMode_Source, CompositionMode_Destination, …, RasterOp_SourceOrNotDestination } |
| enum | PixmapFragmentHint { OpaqueHint } |
| flags | PixmapFragmentHints |
| enum | RenderHint { Antialiasing, TextAntialiasing, SmoothPixmapTransform, VerticalSubpixelPositioning, LosslessImageRendering, NonCosmeticBrushPatterns } |
| flags | RenderHints |
Fonctions publiques
| QPainter() | |
| QPainter(QPaintDevice*device) | |
| ~QPainter() | |
| const QBrush & | background() const |
| Qt::BGMode | backgroundMode() const |
| bool | begin(QPaintDevice*device) |
| void | beginNativePainting() |
| QRectF | boundingRect(const QRectF&rectangle, int flags, const QString&text) |
| QRect | boundingRect(const QRect&rectangle, int flags, const QString&text) |
| QRectF | boundingRect(const QRectF&rectangle, const QString&text, const QTextOption&option = QTextOption()) |
| QRect | boundingRect(int x, int y, int w, int h, int flags, const QString&text) |
| const QBrush & | brush() const |
| QPoint | brushOrigin() const |
(since 6.11) QPointF | brushOriginF() const |
| QRectF | clipBoundingRect() const |
| QPainterPath | clipPath() const |
| QRegion | clipRegion() const |
| QTransform | combinedTransform() const |
| QPainter::CompositionMode | compositionMode() const |
| QPaintDevice * | device() const |
| const QTransform & | deviceTransform() const |
| void | drawArc(const QRectF&rectangle, int startAngle, int spanAngle) |
| void | drawArc(const QRect&rectangle, int startAngle, int spanAngle) |
| void | drawArc(int x, int y, int width, int height, int startAngle, int spanAngle) |
| void | drawChord(const QRectF&rectangle, int startAngle, int spanAngle) |
| void | drawChord(const QRect&rectangle, int angleDeDépart, int angleDePivot) |
| void | drawChord(int x, int y, int width, int height, int startAngle, int spanAngle) |
| void | drawConvexPolygon(const QPointF*points, int pointCount) |
| void | drawConvexPolygon(const QPolygon&polygon) |
| void | drawConvexPolygon(const QPolygonF&polygon) |
| void | drawConvexPolygon(const QPoint*points, int pointCount) |
| void | drawEllipse(const QRectF&rectangle) |
| void | drawEllipse(const QRect&rectangle) |
| void | drawEllipse(const QPoint¢re, int rx, int ry) |
| void | drawEllipse(const QPointF¢re, qreal rx, qreal ry) |
| void | drawEllipse(int x, int y, int width, int height) |
| void | drawGlyphRun(const QPointF&position, const QGlyphRun&glyphs) |
| void | drawImage(const QRectF&cible, const QImage&image, const QRectF&source, Qt::ImageConversionFlags flags = Qt::AutoColor) |
| void | drawImage(const QPoint&point, const QImage&image) |
| void | drawImage(const QPointF&point, const QImage&image) |
| void | drawImage(const QRect&rectangle, const QImage&image) |
| void | drawImage(const QRectF&rectangle, const QImage&image) |
| void | drawImage(const QPoint&point, const QImage&image, const QRect&source, Qt::ImageConversionFlags flags = Qt::AutoColor) |
| void | drawImage(const QPointF&point, const QImage&image, const QRectF&source, Qt::ImageConversionFlags flags = Qt::AutoColor) |
| void | drawImage(const QRect&target, const QImage&image, const QRect&source, Qt::ImageConversionFlags flags = Qt::AutoColor) |
| void | drawImage(int x, int y, const QImage&image, int sx = 0, int sy = 0, int sw = -1, int sh = -1, Qt::ImageConversionFlags flags = Qt::AutoColor) |
| void | drawLine(const QLineF&ligne) |
| void | drawLine(const QLine&line) |
| void | drawLine(const QPoint&p1, const QPoint&p2) |
| void | drawLine(const QPointF&p1, const QPointF&p2) |
| void | drawLine(int x1, int y1, int x2, int y2) |
| void | drawLines(const QLineF*lines, int lineCount) |
| void | drawLines(const QList<QLine>&lignes) |
| void | drawLines(const QList<QLineF>&lines) |
| void | drawLines(const QList<QPoint>&pointPairs) |
| void | drawLines(const QList<QPointF>&pointPairs) |
| void | drawLines(const QLine*lines, int lineCount) |
| void | drawLines(const QPoint*pointPairs, int lineCount) |
| void | drawLines(const QPointF*pointPairs, int lineCount) |
| void | drawPath(const QPainterPath&path) |
| void | drawPicture(const QPointF&point, const QPicture&picture) |
| void | drawPicture(const QPoint&point, const QPicture&picture) |
| void | drawPicture(int x, int y, const QPicture&image) |
| void | drawPie(const QRectF&rectangle, int startAngle, int spanAngle) |
| void | drawPie(const QRect&rectangle, int startAngle, int spanAngle) |
| void | drawPie(int x, int y, int width, int height, int startAngle, int spanAngle) |
| void | drawPixmap(const QRectF&target, const QPixmap&pixmap, const QRectF&source) |
| void | drawPixmap(const QPoint&point, const QPixmap&pixmap) |
| void | drawPixmap(const QPointF&point, const QPixmap&pixmap) |
| void | drawPixmap(const QRect&rectangle, const QPixmap&pixmap) |
| void | drawPixmap(const QPoint&point, const QPixmap&pixmap, const QRect&source) |
| void | drawPixmap(const QPointF&point, const QPixmap&pixmap, const QRectF&source) |
| void | drawPixmap(const QRect&target, const QPixmap&pixmap, const QRect&source) |
| void | drawPixmap(int x, int y, const QPixmap&pixmap) |
| void | drawPixmap(int x, int y, int width, int height, const QPixmap&pixmap) |
| void | drawPixmap(int x, int y, const QPixmap&pixmap, int sx, int sy, int sw, int sh) |
| void | drawPixmap(int x, int y, int w, int h, const QPixmap&pixmap, int sx, int sy, int sw, int sh) |
| void | drawPixmapFragments(const QPainter::PixmapFragment*fragments, int fragmentCount, const QPixmap&pixmap, QPainter::PixmapFragmentHints hints = PixmapFragmentHints()) |
| void | drawPoint(const QPointF&position) |
| void | drawPoint(const QPoint&position) |
| void | drawPoint(int x, int y) |
| void | drawPoints(const QPointF*points, int pointCount) |
| void | drawPoints(const QPolygon&points) |
| void | drawPoints(const QPolygonF&points) |
| void | drawPoints(const QPoint*points, int pointCount) |
| void | drawPolygon(const QPointF*points, int pointCount, Qt::FillRule fillRule = Qt::OddEvenFill) |
| void | drawPolygon(const QPolygon&points, Qt::FillRule fillRule = Qt::OddEvenFill) |
| void | drawPolygon(const QPolygonF&points, Qt::FillRule fillRule = Qt::OddEvenFill) |
| void | drawPolygon(const QPoint*points, int pointCount, Qt::FillRule fillRule = Qt::OddEvenFill) |
| void | drawPolyline(const QPointF*points, int pointCount) |
| void | drawPolyline(const QPolygon&points) |
| void | drawPolyline(const QPolygonF&points) |
| void | drawPolyline(const QPoint*points, int pointCount) |
| void | drawRect(const QRectF&rectangle) |
| void | drawRect(const QRect&rectangle) |
| void | drawRect(int x, int y, int width, int height) |
| void | drawRects(const QRectF*rectangles, int rectCount) |
| void | drawRects(const QList<QRect>&rectangles) |
| void | drawRects(const QList<QRectF>&rectangles) |
| void | drawRects(const QRect*rectangles, int rectCount) |
| void | drawRoundedRect(const QRectF&rect, qreal xRadius, qreal yRadius, Qt::SizeMode mode = Qt::AbsoluteSize) |
| void | drawRoundedRect(const QRect&rect, qreal xRadius, qreal yRadius, Qt::SizeMode mode = Qt::AbsoluteSize) |
| void | drawRoundedRect(int x, int y, int w, int h, qreal xRadius, qreal yRadius, Qt::SizeMode mode = Qt::AbsoluteSize) |
| void | drawStaticText(const QPointF&topLeftPosition, const QStaticText&staticText) |
| void | drawStaticText(const QPoint&positionDeDépart, const QStaticText&texteStatique) |
| void | drawStaticText(int left, int top, const QStaticText&staticText) |
| void | drawText(const QPointF&position, const QString&text) |
| void | drawText(const QPoint&position, const QString&text) |
| void | drawText(const QRectF&rectangle, const QString&text, const QTextOption&option = QTextOption()) |
| void | drawText(int x, int y, const QString&text) |
| void | drawText(const QRect&rectangle, int flags, const QString&text, QRect*boundingRect = nullptr) |
| void | drawText(const QRectF&rectangle, int flags, const QString&text, QRectF*boundingRect = nullptr) |
| void | drawText(int x, int y, int width, int height, int flags, const QString&text, QRect*boundingRect = nullptr) |
| void | drawTiledPixmap(const QRectF&rectangle, const QPixmap&pixmap, const QPointF&position = QPointF()) |
| void | drawTiledPixmap(const QRect&rectangle, const QPixmap&pixmap, const QPoint&position = QPoint()) |
| void | drawTiledPixmap(int x, int y, int width, int height, const QPixmap&pixmap, int sx = 0, int sy = 0) |
| bool | end() |
| void | endNativePainting() |
| void | eraseRect(const QRectF&rectangle) |
| void | eraseRect(const QRect&rectangle) |
| void | eraseRect(int x, int y, int width, int height) |
| void | fillPath(const QPainterPath&path, const QBrush&brush) |
| void | fillRect(const QRectF&rectangle, const QBrush&brush) |
| void | fillRect(const QRect&rectangle, QGradient::Preset preset) |
| void | fillRect(const QRect&rectangle, Qt::BrushStyle style) |
| void | fillRect(const QRect&rectangle, Qt::GlobalColor color) |
| void | fillRect(const QRect&rectangle, const QBrush&brush) |
| void | fillRect(const QRect&rectangle, const QColor&color) |
| void | fillRect(const QRectF&rectangle, QGradient::Preset preset) |
| void | fillRect(const QRectF&rectangle, Qt::BrushStyle style) |
| void | fillRect(const QRectF&rectangle, Qt::GlobalColor color) |
| void | fillRect(const QRectF&rectangle, const QColor&color) |
| void | fillRect(int x, int y, int width, int height, QGradient::Preset preset) |
| void | fillRect(int x, int y, int width, int height, Qt::BrushStyle style) |
| void | fillRect(int x, int y, int largeur, int hauteur, Qt::GlobalColor couleur) |
| void | fillRect(int x, int y, int largeur, int hauteur, const QBrush&pinceau) |
| void | fillRect(int x, int y, int largeur, int hauteur, const QColor&couleur) |
| const QFont & | font() const |
| QFontInfo | fontInfo() const |
| QFontMetrics | fontMetrics() const |
| bool | hasClipping() const |
| bool | isActive() const |
| Qt::LayoutDirection | layoutDirection() const |
| qreal | opacity() const |
| QPaintEngine * | paintEngine() const |
| const QPen & | pen() const |
| QPainter::RenderHints | renderHints() const |
| void | resetTransform() |
| void | restore() |
| void | rotate(qreal angle) |
| void | save() |
| void | scale(qreal sx, qreal sy) |
| void | setBackground(const QBrush&brush) |
| void | setBackgroundMode(Qt::BGMode mode) |
| void | setBrush(const QBrush&brush) |
(since 6.11) void | setBrush(QBrush&&brush) |
(since 6.9) void | setBrush(QColor couleur) |
| void | setBrush(Qt::BrushStyle style) |
(since 6.9) void | setBrush(Qt::GlobalColor couleur) |
| void | setBrushOrigin(const QPointF&position) |
| void | setBrushOrigin(const QPoint&position) |
| void | setBrushOrigin(int x, int y) |
| void | setClipPath(const QPainterPath&path, Qt::ClipOperation operation = Qt::ReplaceClip) |
| void | setClipRect(const QRectF&rectangle, Qt::ClipOperation operation = Qt::ReplaceClip) |
| void | setClipRect(int x, int y, int width, int height, Qt::ClipOperation operation = Qt::ReplaceClip) |
| void | setClipRect(const QRect&rectangle, Qt::ClipOperation operation = Qt::ReplaceClip) |
| void | setClipRegion(const QRegion®ion, Qt::ClipOperation operation = Qt::ReplaceClip) |
| void | setClipping(bool enable) |
| void | setCompositionMode(QPainter::CompositionMode mode) |
| void | setFont(const QFont&font) |
| void | setLayoutDirection(Qt::LayoutDirection direction) |
| void | setOpacity(qreal opacity) |
| void | setPen(const QPen&pen) |
(since 6.11) void | setPen(QPen&&pen) |
| void | setPen(Qt::PenStyle style) |
| void | setPen(const QColor&color) |
| void | setRenderHint(QPainter::RenderHint hint, bool on = true) |
| void | setRenderHints(QPainter::RenderHints hints, bool on = true) |
| void | setTransform(const QTransform&transform, bool combine = false) |
| void | setViewTransformEnabled(bool enable) |
| void | setViewport(const QRect&rectangle) |
| void | setViewport(int x, int y, int width, int height) |
| void | setWindow(const QRect&rectangle) |
| void | setWindow(int x, int y, int largeur, int hauteur) |
| void | setWorldMatrixEnabled(bool enable) |
| void | setWorldTransform(const QTransform&matrix, bool combine = false) |
| void | shear(qreal sh, qreal sv) |
| void | strokePath(const QPainterPath&path, const QPen&pen) |
| bool | testRenderHint(QPainter::RenderHint hint) const |
| const QTransform & | transform() const |
| void | translate(const QPointF&offset) |
| void | translate(const QPoint&offset) |
| void | translate(qreal dx, qreal dy) |
| bool | viewTransformEnabled() const |
| QRect | viewport() const |
| QRect | window() const |
| bool | worldMatrixEnabled() const |
| const QTransform & | worldTransform() const |
Description détaillée
QPainter fournit des fonctions hautement optimisées permettant d'effectuer la plupart des opérations de dessin requises par les programmes d'interface graphique. Il peut dessiner tout type d'élément, des simples lignes aux formes complexes telles que des secteurs circulaires et des cordes. Il peut également dessiner du texte aligné et des images bitmap. En règle générale, il dessine dans un système de coordonnées « naturel », mais il peut également effectuer des transformations de vue et de monde. QPainter peut agir sur tout objet héritant de la classe ` QPaintDevice `.
QPainter est généralement utilisé dans l'événement « paint » d'un widget : créez et personnalisez (par exemple, en définissant le stylo ou le pinceau) le peintre. Puis effectuez le dessin. N'oubliez pas de détruire l'objet QPainter après le dessin. Par exemple :
void SimpleExampleWidget::paintEvent(QPaintEvent *)
{
QPainter painter(this);
painter.setPen(Qt::blue);
painter.setFont(QFont("Arial", 30));
painter.drawText(rect(), Qt::AlignCenter, "Qt");
}La fonctionnalité principale de QPainter est le dessin, mais la classe fournit également plusieurs fonctions permettant de personnaliser les paramètres de QPainter et sa qualité de rendu, ainsi que d’autres fonctions permettant le découpage. De plus, vous pouvez contrôler la manière dont les différentes formes sont fusionnées en spécifiant le mode de composition du peintre.
La fonction ` isActive()` indique si le peintre est actif. Un peintre est activé par la fonction ` begin()` et par le constructeur qui prend un argument ` QPaintDevice `. La fonction ` end()` et le destructeur le désactivent.
Avec les classes ` QPaintDevice ` et ` QPaintEngine `, `QPainter` constitue la base du système de dessin de Qt. `QPainter` est la classe utilisée pour effectuer des opérations de dessin. ` QPaintDevice ` représente un périphérique sur lequel il est possible de dessiner à l’aide d’un `QPainter`. ` QPaintEngine ` fournit l’interface que le peintre utilise pour dessiner sur différents types de périphériques. Si le peintre est actif, la fonction device() renvoie le périphérique de dessin sur lequel il dessine, et la fonction paintEngine() renvoie le moteur de dessin sur lequel il opère actuellement. Pour plus d’informations, consultez la section Système de dessin.
Il est parfois souhaitable de faire en sorte qu'un autre élément dessine sur un « QPaintDevice » inhabituel. QPainter prend en charge une fonction statique permettant d'effectuer cette opération : setRedirected().
Avertissement : lorsque le périphérique de dessin est un widget, QPainter ne peut être utilisé qu’à l’intérieur d’une fonction paintEvent() ou d’une fonction appelée par paintEvent().
Paramètres
Il existe plusieurs paramètres que vous pouvez personnaliser pour que QPainter dessine selon vos préférences :
- font() correspond à la police utilisée pour le dessin de texte. Si l’ isActive du peintre () est disponible, vous pouvez récupérer des informations sur la police actuellement définie et ses métriques à l’aide des fonctions fontInfo() et fontMetrics() respectivement.
- brush() définit la couleur ou le motif utilisé pour remplir les formes.
- pen() définit la couleur ou le pointillé utilisé pour dessiner les lignes ou les contours.
- backgroundMode() indique s’il y a ou non un « background » (), c’est-à-dire s’il s’agit soit de « Qt::OpaqueMode », soit de « Qt::TransparentMode ».
- background() ne s’applique que lorsque backgroundMode() est défini sur Qt::OpaqueMode et que pen() est un motif de pointillés. Dans ce cas, il décrit la couleur des pixels d’arrière-plan dans le motif de pointillés.
- brushOrigin() définit l’origine des pinceaux en mosaïque, généralement l’origine de l’arrière-plan du widget.
- viewport(), window(), worldTransform() constituent le système de transformation des coordonnées du peintre. Pour plus d’informations, consultez la section Coordinate Transformations et la documentation sur le système de coordonnées.
- hasClipping() indique si le peintre effectue un découpage. (Le périphérique de peinture effectue également un découpage.) Si le peintre effectue un découpage, il le fait par rapport à clipRegion().
- layoutDirection() définit le sens de mise en page utilisé par le peintre lors du tracé de texte.
- worldMatrixEnabled() indique si la transformation du monde est activée.
- viewTransformEnabled() indique si la transformation de vue est activée.
Notez que certains de ces paramètres reflètent ceux de certains périphériques de dessin, par exemple QWidget::font(). La fonction QPainter::begin() (ou, de manière équivalente, le constructeur de QPainter) copie ces attributs depuis le périphérique de dessin.
Vous pouvez à tout moment enregistrer l’état du QPainter en appelant la fonction ` save()`, qui enregistre tous les paramètres disponibles dans une pile interne. La fonction ` restore()` les récupère ensuite.
Dessin
QPainter fournit des fonctions permettant de dessiner la plupart des primitives : drawPoint(), drawPoints(), drawLine(), drawRect(), drawRoundedRect(), drawEllipse(), drawArc(), drawPie(), drawChord(), drawPolyline(), drawPolygon(), drawConvexPolygon() et drawCubicBezier(). Les deux fonctions de commodité, drawRects() et drawLines(), dessinent le nombre donné de rectangles ou de lignes dans le tableau donné de QRects ou QLines à l’aide du stylo et du pinceau actuels.
La classe QPainter fournit également la fonction ` fillRect()` qui remplit la zone ` QRect` avec la couleur ` QBrush`, ainsi que la fonction ` eraseRect()` qui efface la zone située à l'intérieur du rectangle donné.
Toutes ces fonctions existent en versions à nombre entier et à virgule flottante.
![]() | Exemple de dessin de base L'exemple « Dessin de base » montre comment afficher des primitives graphiques de base dans divers styles à l'aide de la classe `QPainter`. |
Si vous devez dessiner une forme complexe, en particulier si vous devez le faire de manière répétée, pensez à créer un « QPainterPath » et à le dessiner à l’aide de ` drawPath()`.
| Exemple « Painter Paths » La classe « QPainterPath » fournit un conteneur pour les opérations de dessin, permettant de construire et de réutiliser des formes graphiques. L'exemple « Painter Paths » montre comment les « painter paths » peuvent être utilisés pour créer des formes complexes en vue de leur rendu. | ![]() |
QPainter fournit également la fonction ` fillPath()` qui remplit l'QPainterPath donné avec l'QBrush donné, ainsi que la fonction ` strokePath()` qui dessine le contour du chemin donné (c'est-à-dire qui trace le chemin).
Voir également l’exemple « Déformation vectorielle » qui montre comment utiliser des techniques vectorielles avancées pour dessiner du texte à l’aide d’un « QPainterPath », l’exemple « Dégradés » qui présente les différents types de dégradés disponibles dans Qt, et l’exemple « Traçage de chemin » qui présente les motifs de tirets intégrés à Qt et explique comment utiliser des motifs personnalisés pour élargir la gamme de motifs disponibles.
Le dessin de texte s’effectue à l’aide de la fonction ` drawText()`. Lorsque vous avez besoin d’un positionnement précis, la fonction ` boundingRect()` vous indique où une commande ` drawText()` donnée va dessiner.
Tracé de pixmaps et d’images
Il existe des fonctions permettant de dessiner des pixmaps/images, à savoir drawPixmap(), drawImage() et drawTiledPixmap(). Les fonctions drawPixmap() et drawImage() produisent le même résultat, à l’exception du fait que drawPixmap() est plus rapide à l’écran tandis que drawImage() peut s’avérer plus rapide sur un QPrinter ou d’autres périphériques.
Il existe une fonction drawPicture() qui dessine le contenu d'un QPicture dans son intégralité. La fonction drawPicture() est la seule à ignorer tous les paramètres du peintre, car QPicture dispose de ses propres paramètres.
Affichage de versions haute résolution de pixmaps et d’images
Les versions haute résolution des pixmaps ont un rapport de pixels de l'appareil supérieur à 1 (voir QImageReader, QPixmap::devicePixelRatio()). Si ce rapport correspond à celui de l'QPaintDevice sous-jacente, l'image est dessinée directement sur l'appareil sans transformation supplémentaire.
C’est par exemple le cas lors de l’affichage d’une QPixmap de 64x64 pixels avec un rapport de pixels de l’appareil égal à 2 sur un écran à haute résolution (DPI) qui présente également un rapport de pixels de l’appareil égal à 2. Notez que la pixmap mesure alors effectivement 32×32 pixels dans l’espace utilisateur. Les chemins de code dans Qt qui calculent la géométrie de mise en page en fonction de la taille de la pixmap utiliseront cette taille. Il en résulte que la pixmap s’affiche comme une pixmap haute résolution plutôt que comme une grande pixmap.
Qualité de rendu
Pour obtenir un résultat de rendu optimal avec QPainter, vous devez utiliser le périphérique de peinture indépendant de la plateforme « QImage » ; en d’autres termes, l’utilisation de ` QImage ` garantira que le résultat présente une représentation en pixels identique sur toutes les plateformes.
La classe `QPainter` permet également de contrôler la qualité de rendu grâce à son énumération ` RenderHint ` et à la prise en charge de la précision en virgule flottante : toutes les fonctions de dessin de primitives disposent de versions en virgule flottante.
painter.drawEllipse(QRectF(-diameter / 2.0, -diameter / 2.0, diameter, diameter));Elles sont souvent utilisées en association avec l'indication de rendu « QPainter::Antialiasing ».
| Comparaison de cercles concentriques avec des entiers (int) et des nombres à virgule flottante (float), avec ou sans lissage. L'utilisation des versions à précision en virgule flottante produit des anneaux régulièrement espacés. Le lissage permet d'obtenir des cercles lisses. | ![]() |
L’énumération ` RenderHint ` spécifie des indicateurs à `QPainter` qui peuvent être respectés ou non par un moteur donné. ` QPainter::Antialiasing ` indique que le moteur doit appliquer un anticrénelage aux bords des primitives si possible, ` QPainter::TextAntialiasing ` indique que le moteur doit appliquer un anticrénelage au texte si possible, et ` QPainter::SmoothPixmapTransform ` indique que le moteur doit utiliser un algorithme de transformation de pixmap lisse.
La fonction renderHints() renvoie un indicateur qui spécifie les conseils de rendu définis pour ce peintre. Utilisez la fonction setRenderHint() pour définir ou effacer l’option RenderHints actuellement activée.
Transformations de coordonnées
Normalement, le QPainter opère dans le système de coordonnées propre au périphérique (généralement en pixels), mais QPainter prend bien en charge les transformations de coordonnées.
Les transformations les plus couramment utilisées sont la mise à l'échelle, la rotation, la translation et le cisaillement. Utilisez la fonction scale() pour mettre à l'échelle le système de coordonnées d'un décalage donné, la fonction rotate() pour le faire pivoter dans le sens des aiguilles d'une montre et la fonction translate() pour le translater (c'est-à-dire ajouter un décalage donné aux points). Vous pouvez également tordre le système de coordonnées autour de l’origine à l’aide de la fonction shear(). Consultez l’exemple « Transformations affines » pour visualiser un système de coordonnées cisaillé.
Consultez également l’exemple « Transformations » qui montre comment les transformations influencent la manière dont QPainter rend les primitives graphiques. Il montre notamment comment l’ordre des transformations affecte le résultat.
| Exemple de transformations affines L'exemple « Transformations affines » illustre la capacité de Qt à effectuer des transformations affines sur les opérations de dessin. La démo permet également à l'utilisateur d'expérimenter les opérations de transformation et d'en voir immédiatement les résultats. | ![]() |
Toutes les opérations de transformation s'appliquent à l'worldTransform e de transformation (). Une matrice transforme un point du plan en un autre point. Pour plus d'informations sur la matrice de transformation, consultez la documentation relative au système de coordonnées et à l'QTransform.
La fonction ` setWorldTransform()` peut remplacer ou compléter la matrice de transformation actuellement définie ` worldTransform()`. La fonction ` resetTransform()` réinitialise toutes les transformations effectuées à l’aide des fonctions ` translate()`, ` scale()`, ` shear()`, ` rotate()`, ` setWorldTransform()`, ` setViewport()` et ` setWindow()`. La fonction ` deviceTransform()` renvoie la matrice qui effectue la transformation des coordonnées logiques en coordonnées du périphérique de dessin propre à la plate-forme. Cette dernière fonction n’est nécessaire que lorsque l’on utilise des commandes de dessin propres à la plateforme sur le descripteur dépendant de la plateforme, et que la plateforme n’effectue pas de transformations en natif.
Lorsqu’on dessine avec QPainter, on spécifie des points à l’aide de coordonnées logiques qui sont ensuite converties en coordonnées physiques du périphérique de dessin. Le mappage des coordonnées logiques vers les coordonnées physiques est géré par la fonction ` combinedTransform()` de QPainter, qui combine les fonctions ` viewport()`, ` window()` et ` worldTransform()`. La fonction ` viewport()` représente les coordonnées physiques d'un rectangle arbitraire, la fonction ` window()` décrit ce même rectangle en coordonnées logiques, et la fonction ` worldTransform()` est identique à la matrice de transformation.
Voir aussi Système de coordonnées
Découpage
QPainter peut limiter toute opération de dessin à un rectangle, une région ou un tracé vectoriel. Le découpage actuel est accessible via les fonctions clipRegion() et clipPath(). Le choix entre les chemins et les régions (le plus rapide) dépend de l'paintEngine() sous-jacente. Par exemple, le moteur de dessin QImage privilégie les chemins, tandis que le moteur de dessin X11 privilégie les régions. La définition d'un découpage s'effectue dans les coordonnées logiques du peintre.
Après le découpage effectué par `QPainter`, le périphérique de dessin peut également procéder à un découpage. Par exemple, la plupart des widgets découpent les pixels utilisés par les widgets enfants, et la plupart des imprimantes découpent une zone près des bords du papier. Ce découpage supplémentaire n’est pas pris en compte par la valeur de retour de ` clipRegion()` ou ` hasClipping()`.
Modes de composition
QPainter fournit l'énumération CompositionMode qui définit les règles de Porter-Duff pour la composition d'images numériques ; elle décrit un modèle permettant de combiner les pixels d'une image, dite « source », avec ceux d'une autre image, dite « destination ».
Les deux formes de composition les plus courantes sont « Source » et « SourceOver ». « Source » est utilisé pour dessiner des objets opaques sur un périphérique de dessin. Dans ce mode, chaque pixel de la source remplace le pixel correspondant de la destination. Dans le mode de composition « SourceOver », l’objet source est transparent et est dessiné par-dessus la destination.
Notez que la transformation de composition s’effectue pixel par pixel. C’est pourquoi il existe une différence entre l’utilisation de la primitive graphique elle-même et celle de son rectangle de délimitation : ce dernier contient des pixels pour lesquels alpha == 0 (c’est-à-dire les pixels entourant la primitive). Ces pixels écraseront ceux de l’autre image, les effaçant ainsi, tandis que la primitive n’écrase que sa propre zone.
![]() | Exemple de modes de composition L'exemple « Composition Modes », disponible dans le répertoire des exemples de Qt, vous permet d'expérimenter les différents modes de composition et d'en voir immédiatement les résultats. |
Limitations
Si vous utilisez des coordonnées avec le moteur de dessin raster de Qt, il est important de noter que, bien que des coordonnées supérieures à +/-215 puissent être utilisées, l'affichage des dessins effectués avec des coordonnées situées en dehors de cette plage n'est pas garanti ; le dessin peut être tronqué. Cela est dû à l'utilisation de la fonction « short int » dans l'implémentation.
Les contours générés par le « stroker » de Qt ne constituent qu'une approximation lorsqu'il s'agit de formes courbes. Il est dans la plupart des cas impossible de représenter le contour d'un segment de courbe de Bézier à l'aide d'un autre segment de courbe de Bézier ; Qt approxime donc les contours des courbes en utilisant plusieurs courbes plus petites. Pour des raisons de performances, le nombre de courbes utilisées par Qt pour ces contours est limité ; par conséquent, l’erreur de tracé augmente lorsque l’on utilise des largeurs de trait ou des échelles importantes. Pour générer des contours présentant des erreurs plus faibles, il est possible d’utiliser la classe ` QPainterPathStroker `, qui dispose de la fonction membre `setCurveThreshold` permettant à l’utilisateur de spécifier la tolérance d’erreur. Une autre solution consiste à convertir d’abord les chemins en polygones, puis à dessiner ces derniers à la place.
De même, Qt approxime les arcs et les ellipses à l’aide de courbes de Bézier cubiques au lieu de les calculer par des méthodes trigonométriques ; les points situés sur un arc s’écartent donc légèrement de leurs positions réelles. Dans le même ordre d’idées, les angles pris par les fonctions ` drawArc()`, ` drawPie()` et ` drawChord()` sont des angles excentriques : ils mesurent la direction à partir du centre du rectangle englobant uniquement lorsque ce rectangle est un carré. Voir Arcs and Ellipses pour plus de détails sur ces deux points.
Performances
QPainter est un framework complet qui permet aux développeurs d’effectuer une grande variété d’opérations graphiques, telles que les dégradés, les modes de composition et les graphiques vectoriels. De plus, QPainter peut fonctionner sur une grande variété de configurations matérielles et logicielles. Naturellement, la combinaison sous-jacente de matériel et de logiciel a des implications sur les performances, et garantir que chaque opération soit rapide, en tenant compte de toutes les combinaisons possibles de modes de composition, de pinceaux, de découpage, de transformation, etc., est une tâche quasi impossible en raison du nombre de permutations. À titre de compromis, nous avons sélectionné un sous-ensemble de l’API et des backends de QPainter, pour lequel les performances sont garanties d’être aussi bonnes que possible compte tenu de la combinaison donnée de matériel et de logiciel.
Les backends sur lesquels nous nous concentrons en tant que moteurs hautement performants sont les suivants :
- Raster — Ce backend implémente tout le rendu de manière purement logicielle et est toujours utilisé pour le rendu dans des QImages. Pour des performances optimales, utilisez uniquement les types de format suivants : QImage::Format_ARGB32_Premultiplied, QImage::Format_RGB32 ou QImage::Format_RGB16. Tout autre format, y compris QImage::Format_ARGB32, présente des performances nettement inférieures. Ce moteur est utilisé par défaut pour QWidget et QPixmap.
- OpenGL 2.0 (ES) - Ce backend est le principal backend pour les graphismes accélérés par le matériel. Il peut être exécuté sur des ordinateurs de bureau et des appareils embarqués prenant en charge la spécification OpenGL 2.0 ou OpenGL/ES 2.0. Cela inclut la plupart des puces graphiques produites au cours des deux dernières années. Le moteur peut être activé en utilisant QPainter sur un QOpenGLWidget.
Ces opérations sont les suivantes :
- Des transformations simples, c'est-à-dire des translations et des mises à l'échelle, ainsi que des rotations de 0, 90, 180 et 270 degrés.
drawPixmap()en combinaison avec des transformations simples et l'opacité, en mode de transformation non lisse (QPainter::SmoothPixmapTransformnon activé comme indication de rendu).- Remplissages rectangulaires avec une couleur unie, des dégradés linéaires bicolores et des transformations simples.
- Découpage rectangulaire avec des transformations simples et un découpage par intersection.
- Modes de composition : «
QPainter::CompositionMode_Source» et « QPainter::CompositionMode_SourceOver ». - Remplissage de rectangles arrondis à l’aide de couleurs unies et de dégradés linéaires bicolores.
- Pixmaps 3x3 patchés, via qDrawBorderPixmap.
Cette liste donne une indication des fonctionnalités pouvant être utilisées en toute sécurité dans une application où les performances sont essentielles. Dans certaines configurations, d’autres opérations peuvent également s’avérer rapides, mais avant de les utiliser de manière intensive, il est recommandé de les tester et de les vérifier sur le système où le logiciel sera finalement exécuté. Il existe également des cas où l’utilisation d’opérations coûteuses est acceptable, par exemple lorsque le résultat est mis en cache dans un QPixmap.
Voir également QPaintDevice, QPaintEngine, Qt SVG, Exemple de dessin de base et Drawing Utility Functions.
Documentation sur les types de membres
enum QPainter::CompositionMode
Définit les modes pris en charge pour la composition d'images numériques. Les modes de composition permettent de spécifier la manière dont les pixels d'une image (la source) sont fusionnés avec ceux d'une autre image (la destination).
Veuillez noter que les modes d'opération raster bit à bit, désignés par le préfixe RasterOp, ne sont pris en charge en natif que dans les moteurs X11 et de peinture raster. Cela signifie que la seule façon d'utiliser ces modes sur Mac est de passer par un « QImage ». Les modes de fusion désignés par RasterOp ne sont pas pris en charge pour les stylos et les pinceaux comportant des composantes alpha. De plus, l’activation de l’indication de rendu « QPainter::Antialiasing » désactivera de fait les modes RasterOp.


Le type le plus courant est SourceOver (souvent appelé simplement « fusion alpha »), dans lequel le pixel source est fusionné par-dessus le pixel de destination de telle sorte que la composante alpha de la source définit la translucidité du pixel.
Plusieurs modes de composition nécessitent un canal alpha dans les images source ou cible pour produire un effet. Pour des performances optimales, le format d’image Format_ARGB32_Premultiplied est recommandé.
Lorsqu’un mode de composition est défini, il s’applique à tous les opérateurs de dessin, stylos, pinceaux, dégradés et dessins à partir de pixmaps ou d’images.
| Constante | Valeur | Description |
|---|---|---|
QPainter::CompositionMode_SourceOver | 0 | Il s’agit du mode par défaut. L’alpha de la source est utilisé pour mélanger le pixel par-dessus celui de la destination. |
QPainter::CompositionMode_DestinationOver | 1 | L'opacité de la destination est utilisée pour l'incruster par-dessus les pixels de la source. Ce mode est l'inverse de CompositionMode_SourceOver. |
QPainter::CompositionMode_Clear | 2 | Les pixels de la destination sont effacés (rendus entièrement transparents) indépendamment de la source. |
QPainter::CompositionMode_Source | 3 | Le résultat est le pixel de la source. (Cela correspond à une opération de copie simple et est identique à SourceOver lorsque le pixel de la source est opaque). |
QPainter::CompositionMode_Destination | 4 | Le résultat est le pixel de la destination. Cela signifie que la fusion n’a aucun effet. Ce mode est l’inverse de CompositionMode_Source. |
QPainter::CompositionMode_SourceIn | 5 | Le résultat est la source, dont l’opacité est réduite de celle de la destination. |
QPainter::CompositionMode_DestinationIn | 6 | Le résultat est la destination, dont l’alpha est réduit de celui de la source. Ce mode est l’inverse de CompositionMode_SourceIn. |
QPainter::CompositionMode_SourceOut | 7 | Le résultat est la source, dont l'alpha est réduit de l'inverse de celui de la destination. |
QPainter::CompositionMode_DestinationOut | 8 | Le résultat est le pixel de destination, dont la transparence est réduite de l’inverse de celle du pixel source. Ce mode est l’inverse de CompositionMode_SourceOut. |
QPainter::CompositionMode_SourceAtop | 9 | Le pixel source est superposé à la destination, l’opacité du pixel source étant réduite de l’opacité du pixel de destination. |
QPainter::CompositionMode_DestinationAtop | 10 | Le pixel de destination est superposé à la source, l’opacité du pixel de destination étant réduite de l’opacité de la source. Ce mode est l’inverse de CompositionMode_SourceAtop. |
QPainter::CompositionMode_Xor | 11 | La source, dont la transparence est réduite de l’inverse de la transparence de la destination, est fusionnée avec la destination, dont la transparence est réduite de l’inverse de la transparence de la source. CompositionMode_Xor n’est pas identique à l’opération XOR bit à bit. |
QPainter::CompositionMode_Plus | 12 | L’alpha et la couleur des pixels source et de destination sont additionnés. |
QPainter::CompositionMode_Multiply | 13 | Le résultat est la couleur de la source multipliée par celle de la destination. Multiplier une couleur par du blanc laisse la couleur inchangée, tandis que multiplier une couleur par du noir produit du noir. |
QPainter::CompositionMode_Screen | 14 | Les couleurs de la source et de la destination sont inversées, puis multipliées. La superposition d'une couleur avec du blanc produit du blanc, tandis que la superposition d'une couleur avec du noir laisse la couleur inchangée. |
QPainter::CompositionMode_Overlay | 15 | Multiplie ou effectue une trame sur les couleurs en fonction de la couleur de destination. La couleur de destination est mélangée à la couleur source pour refléter la clarté ou l’obscurité de la destination. |
QPainter::CompositionMode_Darken | 16 | La plus foncée des couleurs source et de destination est sélectionnée. |
QPainter::CompositionMode_Lighten | 17 | La plus claire des couleurs source et de destination est sélectionnée. |
QPainter::CompositionMode_ColorDodge | 18 | La couleur de destination est éclaircie pour refléter la couleur source. Une couleur source noire laisse la couleur de destination inchangée. |
QPainter::CompositionMode_ColorBurn | 19 | La couleur de destination est assombrie pour refléter la couleur source. Une couleur source blanche laisse la couleur de destination inchangée. |
QPainter::CompositionMode_HardLight | 20 | Multiplie ou effectue une trame sur les couleurs en fonction de la couleur source. Une couleur source claire éclaircira la couleur de destination, tandis qu’une couleur source foncée l’assombrira. |
QPainter::CompositionMode_SoftLight | 21 | Assombrit ou éclaircit les couleurs en fonction de la couleur source. Similaire à CompositionMode_HardLight. |
QPainter::CompositionMode_Difference | 22 | Soustrait la couleur la plus foncée de la plus claire. Peindre en blanc inverse la couleur de destination, tandis que peindre en noir laisse la couleur de destination inchangée. |
QPainter::CompositionMode_Exclusion | 23 | Similaire à CompositionMode_Difference, mais avec un contraste plus faible. Peindre en blanc inverse la couleur de destination, tandis que peindre en noir laisse la couleur de destination inchangée. |
QPainter::RasterOp_SourceOrDestination | 24 | Effectue une opération de OU binaire sur les pixels source et de destination (src OU dst). |
QPainter::RasterOp_SourceAndDestination | 25 | Effectue une opération de ET binaire sur les pixels source et de destination (src ET dst). |
QPainter::RasterOp_SourceXorDestination | 26 | Effectue une opération XOR binaire sur les pixels source et de destination (src XOR dst). |
QPainter::RasterOp_NotSourceAndNotDestination | 27 | Effectue une opération de OU non-inversé (NOR) sur les pixels source et de destination ((NOT src) AND (NOT dst)). |
QPainter::RasterOp_NotSourceOrNotDestination | 28 | Effectue une opération NAND binaire sur les pixels source et de destination ((NOT src) OR (NOT dst)). |
QPainter::RasterOp_NotSourceXorDestination | 29 | Effectue une opération binaire dans laquelle les pixels source sont inversés, puis soumis à une opération XOR avec les pixels de destination ((NOT src) XOR dst). |
QPainter::RasterOp_NotSource | 30 | Effectue une opération bit à bit où les pixels source sont inversés (NOT src). |
QPainter::RasterOp_NotSourceAndDestination | 31 | Effectue une opération bit à bit où la source est inversée puis combinée par une opération ET avec la destination ((NOT src) AND dst). |
QPainter::RasterOp_SourceAndNotDestination | 32 | Effectue une opération binaire où la source est combinée par une opération AND avec les pixels de destination inversés (src AND (NOT dst)). |
QPainter::RasterOp_NotSourceOrDestination | 33 | Effectue une opération bit à bit dans laquelle la source est inversée puis combinée par une opération OU avec la destination ((NOT src) OR dst). |
QPainter::RasterOp_ClearDestination | 35 | Les pixels de la destination sont effacés (mis à 0) indépendamment de la source. |
QPainter::RasterOp_SetDestination | 36 | Les pixels de la destination sont activés (mis à 1) indépendamment de la source. |
QPainter::RasterOp_NotDestination | 37 | Effectue une opération binaire dans laquelle les pixels de la destination sont inversés (NOT dst). |
QPainter::RasterOp_SourceOrNotDestination | 34 | Effectue une opération bit à bit où la source est combinée par « OU » avec les pixels de destination inversés (src OR (NOT dst)). |
Voir également compositionMode(), setCompositionMode(), Composition Modes et Exemple de composition d’images.
enum QPainter::PixmapFragmentHint
flags QPainter::PixmapFragmentHints
| Constante | Valeur | Description |
|---|---|---|
QPainter::OpaqueHint | 0x01 | Indique que les fragments de pixmap à dessiner sont opaques. Les fragments opaques peuvent être dessinés plus rapidement. |
Le type `PixmapFragmentHints` est une définition de type pour `QFlags<PixmapFragmentHint>`. Il stocke une combinaison (ou) de valeurs `PixmapFragmentHint`.
Voir également QPainter::drawPixmapFragments() et QPainter::PixmapFragment.
enum QPainter::RenderHint
flags QPainter::RenderHints
Les « renderhints » servent à spécifier des indicateurs à l'QPainter, qui peuvent être pris en compte ou non par un moteur donné.
| Constante | Valeur | Description |
|---|---|---|
QPainter::Antialiasing | 0x01 | Indique que le moteur doit appliquer un anticrénelage aux arêtes des primitives si possible. |
QPainter::TextAntialiasing | 0x02 | Indique que le moteur doit appliquer un anticrénelage au texte si possible. Pour désactiver de force l'anticrénelage du texte, n'utilisez pas cette instruction. Définissez plutôt l'QFont::NoAntialias e de la stratégie de style de votre police. |
QPainter::SmoothPixmapTransform | 0x04 | Indique que le moteur doit utiliser un algorithme de transformation de pixmap lisse (tel que bilinéaire) plutôt que la méthode du plus proche voisin. |
QPainter::VerticalSubpixelPositioning | 0x08 | Permet de positionner le texte à des fractions de pixels aussi bien verticalement qu’horizontalement, si cela est pris en charge par le moteur de polices. Cette fonctionnalité est actuellement prise en charge par Freetype sur toutes les plateformes lorsque la préférence de hinting est définie sur « QFont::PreferNoHinting », ainsi que sur macOS. Dans la plupart des cas d’utilisation, cela n’améliorera pas la qualité visuelle, mais pourra augmenter la consommation de mémoire et entraîner une légère baisse des performances de rendu du texte. Par conséquent, il n'est pas recommandé d'activer cette option, sauf si le cas d'utilisation l'exige. Un tel cas d'utilisation pourrait être l'alignement de glyphes avec d'autres primitives visuelles. Cette valeur a été ajoutée dans Qt 6.1. |
QPainter::LosslessImageRendering | 0x40 | Utilisez un rendu d’image sans perte, dans la mesure du possible. Actuellement, cette option n’est utilisée que lorsque l’option « QPainter » est employée pour générer un fichier PDF via QPrinter ou QPdfWriter, où les appels drawImage()/drawPixmap() encoderont les images à l’aide d’un algorithme de compression sans perte au lieu de la compression JPEG avec perte. Cette valeur a été ajoutée dans Qt 5.13. |
QPainter::NonCosmeticBrushPatterns | 0x80 | Lors du tracé avec un pinceau utilisant l'un des styles de motif prédéfinis, transformer également le motif en même temps que l'objet en cours de tracé. Par défaut, le motif est considéré comme purement esthétique, de sorte que ses pixels sont directement mappés aux pixels du périphérique, indépendamment de toute transformation active. Cette valeur a été ajoutée dans Qt 6.4. |
Le type `RenderHints` est un `typedef` pour ` QFlags<RenderHint>`. Il stocke une combinaison (ou) de valeurs `RenderHint`.
Voir également renderHints(), setRenderHint() et Rendering Quality.
Documentation des fonctions membres
QPainter::QPainter()
Crée un « painter ».
Voir également begin() et end().
[explicit] QPainter::QPainter(QPaintDevice *device)
Crée un « painter » qui commence immédiatement à peindre l'device.
Ce constructeur est pratique pour les peintres à courte durée de vie, par exemple dans une fonction ` QWidget::paintEvent()`, et ne doit être utilisé qu'une seule fois. Le constructeur appelle ` begin()` à votre place et le destructeur de `QPainter` appelle automatiquement ` end()`.
Voici un exemple utilisant begin() et end() :
void MyWidget::paintEvent(QPaintEvent *)
{
QPainter p;
p.begin(this);
p.drawLine(drawingCode); // drawing code
p.end();
}Le même exemple utilisant ce constructeur :
void MyWidget::paintEvent(QPaintEvent *)
{
QPainter p(this);
p.drawLine(drawingCode); // drawing code
}Étant donné que le constructeur ne peut pas fournir de retour d'information en cas d'échec de l'initialisation du peintre, il est préférable d'utiliser begin() et end() pour dessiner sur des périphériques externes, par exemple des imprimantes.
Voir également begin() et end().
[noexcept] QPainter::~QPainter()
Il anéantit le peintre.
const QBrush &QPainter::background() const
Renvoie le pinceau d'arrière-plan actuel.
Voir également setBackground() et Settings.
Qt::BGMode QPainter::backgroundMode() const
Renvoie le mode d'arrière-plan actuel.
Voir également setBackgroundMode() et Settings.
bool QPainter::begin(QPaintDevice *device)
Lance l'opération de peinture « device » et renvoie « true » en cas de réussite ; sinon, renvoie « false ».
Notez que tous les paramètres du peintre (setPen(), setBrush() etc.) sont réinitialisés à leurs valeurs par défaut lorsque la fonction begin() est appelée.
Les erreurs pouvant survenir constituent des problèmes graves, tels que ceux-ci :
painter->begin(nullptr); // impossible - paint device cannot be null
QPixmap image(0, 0);
painter->begin(&image); // impossible - image.isNull() == true;
painter->begin(myWidget);
painter2->begin(myWidget); // impossible - only one painter at a timeNotez que, la plupart du temps, vous pouvez utiliser l’un des constructeurs à la place de `begin()`, et que ` end()` est automatiquement exécutée lors de la destruction.
Avertissement : un périphérique de dessin ne peut être dessiné que par un seul « peintre » à la fois.
Avertissement : le dessin sur un périphérique de dessin ( QImage ) au format QImage::Format_Indexed8 n’est pas pris en charge.
Voir également ` end()` et ` QPainter()`.
void QPainter::beginNativePainting()
Vide le pipeline de rendu et prépare le système à l’exécution de commandes directement adressées par l’utilisateur au contexte graphique sous-jacent. Doit être suivi d’un appel à la fonction ` endNativePainting()`.
Notez que seuls les états modifiés par le moteur de dessin sous-jacent seront réinitialisés à leurs états par défaut respectifs. Les états réinitialisés peuvent varier d'une version à l'autre. Les états suivants sont actuellement réinitialisés dans le moteur OpenGL 2 :
- le mélange est désactivé
- les tests de profondeur, de stencil et de ciseaux sont désactivés
- l'unité de texture active est réinitialisée à 0
- le masque de profondeur, la fonction de profondeur et la profondeur de nettoyage sont réinitialisés à leurs valeurs par défaut
- le masque de stencil, l'opération de stencil et la fonction de stencil sont réinitialisés à leurs valeurs par défaut
- la couleur actuelle est réinitialisée en blanc uni
Si, par exemple, le mode polygone OpenGL est modifié par l’utilisateur à l’intérieur d’un bloc `beginNativePaint()`/`endNativePainting()`, il ne sera pas réinitialisé à son état par défaut par ` endNativePainting()`. Voici un exemple illustrant l’intermêlement de commandes de peinture et de commandes OpenGL brutes :
QPainter painter(this);
painter.fillRect(0, 0, 128, 128, Qt::green);
painter.beginNativePainting();
glEnable(GL_SCISSOR_TEST);
glScissor(0, 0, 64, 64);
glClearColor(1, 0, 0, 1);
glClear(GL_COLOR_BUFFER_BIT);
glDisable(GL_SCISSOR_TEST);
painter.endNativePainting();Voir également endNativePainting().
QRectF QPainter::boundingRect(const QRectF &rectangle, int flags, const QString &text)
Renvoie le rectangle englobant de l’ text, tel qu’il apparaîtra lorsqu’il sera dessiné à l’intérieur de l’ rectangle donné, avec l’ flags spécifié, en utilisant l’ font() actuellement défini ; en d’autres termes, cette fonction indique où la fonction drawText() dessinera si on lui fournit les mêmes arguments.
Si l’ text ne tient pas dans l’ rectangle donné en utilisant l’ flags spécifié, la fonction renvoie le rectangle requis.
L’argument ` flags ` est un OU binaire des indicateurs suivants :
- Qt::AlignLeft
- Qt::AlignRight
- Qt::AlignHCenter
- Qt::AlignTop
- Qt::AlignBottom
- Qt::AlignVCenter
- Qt::AlignCenter
- Qt::TextSingleLine
- Qt::TextExpandTabs
- Qt::TextShowMnemonic
- Qt::TextWordWrap
- Qt::TextIncludeTrailingSpaces
Si plusieurs indicateurs d’alignement horizontal ou plusieurs indicateurs d’alignement vertical sont activés, l’alignement résultant n’est pas défini.
Voir également drawText(), Qt::Alignment et Qt::TextFlag.
QRect QPainter::boundingRect(const QRect &rectangle, int flags, const QString &text)
Renvoie le rectangle englobant de l’ text, tel qu’il apparaîtra lorsqu’il sera dessiné à l’intérieur de l’ rectangle donnée, avec l’ flags spécifiée, en utilisant le font() actuellement défini.
Il s'agit d'une fonction surchargée.
QRectF QPainter::boundingRect(const QRectF &rectangle, const QString &text, const QTextOption &option = QTextOption())
Au lieu de spécifier les indicateurs sous la forme d'un OU binaire entre les valeurs « Qt::AlignmentFlag » et « Qt::TextFlag », cette fonction surchargée prend un argument de type « option ». La classe « QTextOption » fournit une description des propriétés générales du texte enrichi.
Il s'agit d'une fonction surchargée.
Voir également QTextOption.
QRect QPainter::boundingRect(int x, int y, int w, int h, int flags, const QString &text)
Renvoie le rectangle englobant de l'text donné, tel qu'il apparaîtra lorsqu'il sera dessiné à l'intérieur du rectangle dont les coordonnées de départ sont (x, y), avec une largeur de w et une hauteur de h.
Il s'agit d'une fonction surchargée.
const QBrush &QPainter::brush() const
Renvoie le pinceau actuellement utilisé par le peintre.
Voir également QPainter::setBrush() et Settings.
QPoint QPainter::brushOrigin() const
Renvoie l'origine actuelle du pinceau. Il est préférable d'utiliser QPainter::brushOriginF() pour obtenir l'origine exacte.
Voir également setBrushOrigin() et Settings.
[since 6.11] QPointF QPainter::brushOriginF() const
Renvoie l'origine actuelle du pinceau.
Cette fonction a été introduite dans Qt 6.11.
Voir également setBrushOrigin() et Settings.
QRectF QPainter::clipBoundingRect() const
Renvoie le rectangle englobant du clip actuel s'il existe un clip ; sinon, renvoie un rectangle vide. Notez que la région du clip est exprimée en coordonnées logiques.
Il n'est pas garanti que le rectangle de délimitation soit serré.
Voir également setClipRect(), setClipPath() et setClipRegion().
QPainterPath QPainter::clipPath() const
Renvoie le tracé de découpe actuel en coordonnées logiques.
Avertissement : la fonction ` QPainter ` ne stocke pas explicitement le découpage combiné, car celui-ci est géré par l'QPaintEngine sous-jacente ; le chemin est donc recréé à la demande et transformé selon le système de coordonnées logiques actuel. Cette opération peut s'avérer coûteuse en ressources.
Voir également setClipPath(), clipRegion() et setClipping().
QRegion QPainter::clipRegion() const
Renvoie la région de clip actuellement définie. Notez que la région de clip est exprimée en coordonnées logiques.
Avertissement : la fonction ` QPainter ` ne stocke pas explicitement le clip combiné, car cette gestion est assurée par l'QPaintEngine sous-jacente ; le chemin est donc recréé à la demande et transformé selon le système de coordonnées logiques actuel. Cette opération peut s'avérer coûteuse en ressources.
Voir également setClipRegion(), clipPath() et setClipping().
QTransform QPainter::combinedTransform() const
Renvoie la matrice de transformation combinant la transformation de la fenêtre/fenêtre d'affichage actuelle et la transformation mondiale.
Voir également setWorldTransform(), setWindow() et setViewport().
QPainter::CompositionMode QPainter::compositionMode() const
Renvoie le mode de composition actuel.
Voir également CompositionMode et setCompositionMode().
QPaintDevice *QPainter::device() const
Renvoie le périphérique de dessin sur lequel ce « painter » est en train de dessiner, ou « nullptr » si le « painter » n'est pas actif.
Voir également isActive().
const QTransform &QPainter::deviceTransform() const
Renvoie la matrice permettant de transformer les coordonnées logiques en coordonnées du périphérique de dessin propre à la plateforme.
Cette fonction n' est nécessaire que lorsque l'on utilise des commandes de dessin spécifiques à la plate-forme sur le descripteur dépendant de la plate-forme (Qt::HANDLE) et que la plate-forme n'effectue pas ces transformations de manière native.
L'énumération QPaintEngine::PaintEngineFeature peut être interrogée pour déterminer si la plateforme effectue ou non les transformations.
Voir également worldTransform() et QPaintEngine::hasFeature().
void QPainter::drawArc(const QRectF &rectangle, int startAngle, int spanAngle)
Dessine l'arc défini par les coordonnées données : rectangle, startAngle et spanAngle.
Les paramètres startAngle et spanAngle doivent être spécifiés en 1/16e de degré, c'est-à-dire qu'un cercle complet équivaut à 5 760 (16 * 360). Les valeurs positives des angles correspondent à un sens antihoraire, tandis que les valeurs négatives correspondent à un sens horaire. Zéro degré correspond à la position 3 heures. Si l'rectangle e n'est pas carré, les angles sont des angles excentriques et ne mesurent pas la direction à partir du centre de l' e, comme décrit dans Arcs and Ellipses.
![]() |
Voir également drawPie(), drawChord() et Système de coordonnées.
void QPainter::drawArc(const QRect &rectangle, int startAngle, int spanAngle)
Dessine l'arc défini par les coordonnées données : rectangle, startAngle et spanAngle.
Il s'agit d'une fonction surchargée.
void QPainter::drawArc(int x, int y, int width, int height, int startAngle, int spanAngle)
Dessine l'arc défini par le rectangle dont les sommets sont (x, y), avec les paramètres spécifiés width et height, ainsi que les valeurs données startAngle et spanAngle.
Il s'agit d'une fonction surchargée.
void QPainter::drawChord(const QRectF &rectangle, int startAngle, int spanAngle)
Dessine la corde définie par les paramètres ` rectangle`, ` startAngle ` et ` spanAngle`. La corde est remplie avec la couleur actuelle définie par ` brush()`.
Les paramètres startAngle et spanAngle doivent être spécifiés en 1/16e de degré, c'est-à-dire qu'un cercle complet équivaut à 5 760 (16 * 360). Les valeurs positives des angles correspondent à un sens antihoraire, tandis que les valeurs négatives correspondent à un sens horaire. Zéro degré correspond à la position 3 heures. Si rectangle n’est pas carré, les angles sont des angles excentriques et ne mesurent pas la direction à partir du centre du rectangle, comme décrit dans Arcs and Ellipses.
![]() |
Voir également drawArc(), drawPie() et Système de coordonnées.
void QPainter::drawChord(const QRect &rectangle, int startAngle, int spanAngle)
Dessine la corde définie par les coordonnées données rectangle, startAngle et spanAngle.
Il s'agit d'une fonction surchargée.
void QPainter::drawChord(int x, int y, int width, int height, int startAngle, int spanAngle)
Dessine la corde définie par le rectangle dont les sommets sont (x, y), avec les paramètres spécifiés width et height, ainsi que les valeurs données startAngle et spanAngle.
Il s'agit d'une fonction surchargée.
void QPainter::drawConvexPolygon(const QPointF *points, int pointCount)
Dessine le polygone convexe défini par les premiers points de l'pointCount s du tableau points à l'aide du stylo actuel.
![]() |
Le premier point est implicitement relié au dernier, et le polygone est rempli avec l'brush() actuel. Si le polygone fourni n'est pas convexe, c'est-à-dire s'il contient au moins un angle supérieur à 180 degrés, le résultat est indéfini.
Sur certaines plateformes (par exemple X11), la fonction drawConvexPolygon() peut être plus rapide que la fonction drawPolygon().
Voir également drawPolygon(), drawPolyline() et Système de coordonnées.
void QPainter::drawConvexPolygon(const QPolygon &polygon)
Dessine le polygone convexe défini par polygon à l'aide du stylo et du pinceau actuels.
Il s'agit d'une fonction surchargée.
void QPainter::drawConvexPolygon(const QPolygonF &polygon)
Dessine le polygone convexe défini par polygon à l'aide du stylo et du pinceau actuels.
Il s'agit d'une fonction surchargée.
void QPainter::drawConvexPolygon(const QPoint *points, int pointCount)
Dessine le polygone convexe défini par les points de la première pointCount s du tableau « points » à l'aide du stylo actuel.
Il s'agit d'une fonction surchargée.
void QPainter::drawEllipse(const QRectF &rectangle)
Dessine l'ellipse définie par les coordonnées données rectangle.
Une ellipse remplie a une taille de rectangle.size(). Une ellipse avec contour a une taille de rectangle.size() plus la largeur du stylo.
Voir également drawPie() et Système de coordonnées.
void QPainter::drawEllipse(const QRect &rectangle)
Dessine l'ellipse définie par l'rectangle s fournies.
Il s'agit d'une fonction surchargée.
void QPainter::drawEllipse(const QPoint ¢er, int rx, int ry)
Dessine l'ellipse située aux coordonnées center, dont les rayons sont rx et ry.
Il s'agit d'une fonction surchargée.
void QPainter::drawEllipse(const QPointF ¢er, qreal rx, qreal ry)
Dessine l'ellipse située à l'center, dont les rayons sont rx et ry.
Il s'agit d'une fonction surchargée.
void QPainter::drawEllipse(int x, int y, int width, int height)
Dessine l'ellipse définie par le rectangle dont les sommets sont (x, y), avec les paramètres width et height fournis.
Il s'agit d'une fonction surchargée.
void QPainter::drawGlyphRun(const QPointF &position, const QGlyphRun &glyphs)
Affiche les glyphes représentés par glyphs à l'adresse position. Le paramètre « position » indique le bord de la ligne de base de la chaîne de glyphes. Les glyphes seront extraits de la police sélectionnée sur glyphs et aux décalages indiqués par les positions figurant dans glyphs.
Voir également QGlyphRun::setRawFont(), QGlyphRun::setPositions() et QGlyphRun::setGlyphIndexes().
void QPainter::drawImage(const QRectF &target, const QImage &image, const QRectF &source, Qt::ImageConversionFlags flags = Qt::AutoColor)
Dessine la partie rectangulaire source de l'image donné dans le rectangle target du périphérique de dessin.
Remarque : l'image est redimensionnée pour s'adapter au rectangle si les tailles de l'image et du rectangle ne correspondent pas.
Remarque : voir Drawing High Resolution Versions of Pixmaps and Images pour savoir comment cela est influencé par la fonction QImage::devicePixelRatio().
Si l’image doit être modifiée pour s’adapter à un résultat de résolution inférieure (par exemple, conversion de 32 bits à 8 bits), utilisez la fonction flags pour spécifier la manière dont vous souhaitez que cette opération soit effectuée.
Voir également drawPixmap() et QImage::devicePixelRatio().
void QPainter::drawImage(const QPoint &point, const QImage &image)
Affiche l'image e indiquée à l'point indiquée.
Il s'agit d'une fonction surchargée.
void QPainter::drawImage(const QPointF &point, const QImage &image)
Affiche l'image on indiquée à l'point indiquée.
Il s'agit d'une fonction surchargée.
void QPainter::drawImage(const QRect &rectangle, const QImage &image)
Affiche l'image on fournie dans l'rectangle on fournie.
Remarque : l'image est redimensionnée pour s'adapter au rectangle si les dimensions de l'image et du rectangle ne correspondent pas.
Il s'agit d'une fonction surchargée.
void QPainter::drawImage(const QRectF &rectangle, const QImage &image)
Affiche l'image on fournie dans l'rectangle on fournie.
Remarque : l'image est redimensionnée pour s'adapter au rectangle si les dimensions de l'image et du rectangle ne correspondent pas.
Il s'agit d'une fonction surchargée.
void QPainter::drawImage(const QPoint &point, const QImage &image, const QRect &source, Qt::ImageConversionFlags flags = Qt::AutoColor)
Dessine la partie rectangulaire source de l'image donnée, dont l'origine se trouve au point point.
Il s'agit d'une fonction surchargée.
void QPainter::drawImage(const QPointF &point, const QImage &image, const QRectF &source, Qt::ImageConversionFlags flags = Qt::AutoColor)
Dessine la partie rectangulaire source de l'image donnée, dont l'origine se trouve à l'point indiquée.
Il s'agit d'une fonction surchargée.
void QPainter::drawImage(const QRect &target, const QImage &image, const QRect &source, Qt::ImageConversionFlags flags = Qt::AutoColor)
Dessine la partie rectangulaire source de l'image donné dans le rectangle target du périphérique de dessin.
Remarque : l'image est redimensionnée pour s'adapter au rectangle si les tailles de l'image et du rectangle ne correspondent pas.
Il s'agit d'une fonction surchargée.
void QPainter::drawImage(int x, int y, const QImage &image, int sx = 0, int sy = 0, int sw = -1, int sh = -1, Qt::ImageConversionFlags flags = Qt::AutoColor)
Dessine une image aux coordonnées (x, y) en copiant une partie de image dans le périphérique de dessin.
(x, y) spécifie le point d'angle supérieur gauche dans le périmètre de dessin sur lequel l'image doit être dessinée. (sx, sy) spécifie le point d'angle supérieur gauche dans image qui doit être dessiné. La valeur par défaut est (0, 0).
(sw, sh) spécifie la taille de l’image à dessiner. La valeur par défaut, (0, 0) (et les valeurs négatives), correspond à la zone allant jusqu’au coin inférieur droit de l’image.
Il s'agit d'une fonction surchargée.
void QPainter::drawLine(const QLineF &line)
Trace une ligne définie par line.
Voir également drawLines(), drawPolyline() et Système de coordonnées.
void QPainter::drawLine(const QLine &line)
Dessine une ligne définie par line.
Il s'agit d'une fonction surchargée.
void QPainter::drawLine(const QPoint &p1, const QPoint &p2)
Trace une ligne reliant p1 à p2.
Il s'agit d'une fonction surchargée.
void QPainter::drawLine(const QPointF &p1, const QPointF &p2)
Trace une ligne reliant p1 à p2.
Il s'agit d'une fonction surchargée.
void QPainter::drawLine(int x1, int y1, int x2, int y2)
Trace une droite reliant les points (x1, y1) à (x2, y2).
Il s'agit d'une fonction surchargée.
void QPainter::drawLines(const QLineF *lines, int lineCount)
Dessine les premières lignes de type « lineCount » du tableau « lines » à l'aide du stylo actuel.
Voir également drawLine() et drawPolyline().
void QPainter::drawLines(const QList<QLine> &lines)
Dessine l'ensemble des lignes définies par la liste lines à l'aide du stylo et du pinceau actuels.
Il s'agit d'une fonction surchargée.
void QPainter::drawLines(const QList<QLineF> &lines)
Dessine l'ensemble des lignes définies par la liste lines à l'aide du stylo et du pinceau actuels.
Il s'agit d'une fonction surchargée.
void QPainter::drawLines(const QList<QPoint> &pointPairs)
Dessine une ligne pour chaque paire de points du vecteur pointPairs à l'aide du stylo actuel.
Il s'agit d'une fonction surchargée.
void QPainter::drawLines(const QList<QPointF> &pointPairs)
Dessine une ligne pour chaque paire de points du vecteur ` pointPairs ` à l'aide du stylo actuel. Si le tableau contient un nombre impair de points, le dernier point sera ignoré.
Il s'agit d'une fonction surchargée.
void QPainter::drawLines(const QLine *lines, int lineCount)
Dessine les lineCount premières lignes du tableau lines à l'aide du stylo actuel.
Il s'agit d'une fonction surchargée.
void QPainter::drawLines(const QPoint *pointPairs, int lineCount)
Dessine les lineCount premières lignes du tableau « pointPairs » à l'aide du stylo actuel.
Il s'agit d'une fonction surchargée.
void QPainter::drawLines(const QPointF *pointPairs, int lineCount)
Dessine les lineCount premières lignes du tableau pointPairs à l'aide du stylo actuel. Les lignes sont spécifiées sous forme de paires de points ; le nombre d'entrées dans pointPairs doit donc être au moins égal à lineCount * 2.
Il s'agit d'une fonction surchargée.
void QPainter::drawPath(const QPainterPath &path)
Dessine l'path « painter » spécifiée en utilisant le stylo actuel pour le contour et le pinceau actuel pour le remplissage.
![]() | |
Voir également l'exemple «Painter Paths » et l'exemple « Vector Deformation ».
void QPainter::drawPicture(const QPointF &point, const QPicture &picture)
Relance l'picture spécifiée à l'adresse point.
La classe ` QPicture ` est un périphérique de dessin qui enregistre et relance les commandes ` QPainter `. Une image sérialise les commandes de dessin vers un périphérique d’E/S dans un format indépendant de la plate-forme. Tout ce qui peut être dessiné sur un widget ou une image bitmap peut également être stocké dans une image.
Cette fonction fait exactement la même chose que ` QPicture::play()` lorsqu’elle est appelée avec ` point = QPointF(0, 0)`.
Remarque : l’état du peintre est conservé par cette fonction.
Voir aussi ` QPicture::play()`.
void QPainter::drawPicture(const QPoint &point, const QPicture &picture)
Lance la rediffusion de l’ picture on indiquée à l’adresse point.
Il s'agit d'une fonction surchargée.
void QPainter::drawPicture(int x, int y, const QPicture &picture)
Dessine l'picture e indiquée au point (x, y).
Il s'agit d'une fonction surchargée.
void QPainter::drawPie(const QRectF &rectangle, int startAngle, int spanAngle)
Affiche un diagramme circulaire défini par les coordonnées fournies : rectangle, startAngle et spanAngle.
Le cercle est rempli avec la couleur actuelle brush().
Les paramètres startAngle et spanAngle doivent être spécifiés en 1/16e de degré, c’est-à-dire qu’un cercle complet équivaut à 5 760 (16 × 360). Les valeurs positives des angles correspondent à un sens antihoraire, tandis que les valeurs négatives correspondent à un sens horaire. Zéro degré correspond à la position 3 heures. Si rectangle n’est pas un carré, les angles sont des angles excentriques et ne mesurent pas la direction à partir du centre du rectangle, comme décrit dans Arcs and Ellipses.
![]() |
Voir également drawEllipse(), drawChord() et Système de coordonnées.
void QPainter::drawPie(const QRect &rectangle, int startAngle, int spanAngle)
Dessine un diagramme circulaire défini par les coordonnées rectangle, startAngle et spanAngle.
Il s'agit d'une fonction surchargée.
void QPainter::drawPie(int x, int y, int width, int height, int startAngle, int spanAngle)
Dessine le secteur défini par le rectangle dont les coins sont situés respectivement en (x, y), avec les paramètres width et height spécifiés, ainsi que les coordonnées startAngle et spanAngle fournies.
Il s'agit d'une fonction surchargée.
void QPainter::drawPixmap(const QRectF &target, const QPixmap &pixmap, const QRectF &source)
Dessine la partie rectangulaire source de l'image donnée pixmap dans la zone donnée target du périphérique de dessin.
Remarque : la carte de pixels est redimensionnée pour s'adapter au rectangle si la taille de la carte de pixels et celle du rectangle ne correspondent pas.
Remarque : voir Drawing High Resolution Versions of Pixmaps and Images pour savoir comment cela est influencé par QPixmap::devicePixelRatio().
Si pixmap est un QBitmap, il est dessiné avec les bits « activés » en utilisant la couleur des stylos. Si backgroundMode est Qt::OpaqueMode, les bits « désactivés » sont dessinés en utilisant la couleur du pinceau d’arrière-plan ; si backgroundMode est Qt::TransparentMode, les bits « désactivés » sont transparents. Le dessin de bitmaps avec des couleurs en dégradé ou en texture n’est pas pris en charge.
Voir également drawImage() et QPixmap::devicePixelRatio().
void QPainter::drawPixmap(const QPoint &point, const QPixmap &pixmap)
Dessine l'pixmap donnée dont l'origine se trouve à l'point indiquée.
Il s'agit d'une fonction surchargée.
void QPainter::drawPixmap(const QPointF &point, const QPixmap &pixmap)
Dessine l'pixmap donnée dont l'origine se trouve à l'point indiquée.
Il s'agit d'une fonction surchargée.
void QPainter::drawPixmap(const QRect &rectangle, const QPixmap &pixmap)
Dessine l'pixmap on fournie dans l'rectangle on fournie.
Remarque : la carte de pixels est redimensionnée pour s'adapter au rectangle si leurs tailles ne correspondent pas.
Il s'agit d'une fonction surchargée.
void QPainter::drawPixmap(const QPoint &point, const QPixmap &pixmap, const QRect &source)
Dessine la partie rectangulaire source de la surface donnée pixmap, dont l'origine se trouve au point donné point.
Il s'agit d'une fonction surchargée.
void QPainter::drawPixmap(const QPointF &point, const QPixmap &pixmap, const QRectF &source)
Dessine la partie rectangulaire source de l'pixmap donnée, dont l'origine se trouve au point point.
Il s'agit d'une fonction surchargée.
void QPainter::drawPixmap(const QRect &target, const QPixmap &pixmap, const QRect &source)
Dessine la partie rectangulaire source de l'pixmap donné dans la zone target spécifiée du périphérique de dessin.
Remarque : la carte de pixels est redimensionnée pour s'adapter au rectangle si les tailles de la carte de pixels et du rectangle ne correspondent pas.
Il s'agit d'une fonction surchargée.
void QPainter::drawPixmap(int x, int y, const QPixmap &pixmap)
Affiche l'pixmap on indiquée à la position (x, y).
Il s'agit d'une fonction surchargée.
void QPainter::drawPixmap(int x, int y, int width, int height, const QPixmap &pixmap)
Dessine l'pixmap e dans le rectangle situé à la position (x, y) avec les paramètres width et height fournis.
Il s'agit d'une fonction surchargée.
void QPainter::drawPixmap(int x, int y, const QPixmap &pixmap, int sx, int sy, int sw, int sh)
Dessine une image pixelisée à l'emplacement (x, y) en copiant une partie de l'pixmap fournie dans le périphérique de dessin.
(x, y) spécifie le point d'angle supérieur gauche du périphérique de dessin sur lequel le dessin doit être effectué. (sx, sy) spécifie le point d'angle supérieur gauche de l'image pixmap à dessiner. La valeur par défaut est (0, 0).
(sw, sh) spécifie la taille de la carte de pixels sur laquelle le dessin doit être effectué. La valeur par défaut, (0, 0) (et les valeurs négatives), correspond à la zone allant jusqu’au coin inférieur droit de la carte de pixels.
Il s'agit d'une fonction surchargée.
void QPainter::drawPixmap(int x, int y, int w, int h, const QPixmap &pixmap, int sx, int sy, int sw, int sh)
Dessine la partie rectangulaire dont l'origine est (sx, sy), la largeur sw et la hauteur sh, de l'pixmap donné, au point (x, y), avec une largeur de w et une hauteur de h. Si sw ou sh sont égaux à zéro, la largeur/hauteur de la pixmap est utilisée et ajustée par le décalage sx/sy ;
Il s'agit d'une fonction surchargée.
void QPainter::drawPixmapFragments(const QPainter::PixmapFragment *fragments, int fragmentCount, const QPixmap &pixmap, QPainter::PixmapFragmentHints hints = PixmapFragmentHints())
Cette fonction sert à dessiner pixmap, ou un sous-rectangle de pixmap, à plusieurs emplacements avec des échelles, des rotations et des opacités différentes. fragments est un tableau de fragmentCount éléments spécifiant les paramètres utilisés pour dessiner chaque fragment de pixmap. Le paramètre hints peut être utilisé pour transmettre des indications de dessin.
Cette fonction est potentiellement plus rapide que plusieurs appels à ` drawPixmap()`, car le moteur peut optimiser les changements d’état.
Voir également QPainter::PixmapFragment et QPainter::PixmapFragmentHint.
void QPainter::drawPoint(const QPointF &position)
Trace un point unique aux coordonnées position, en utilisant la couleur actuelle du stylo.
Voir aussi Système de coordonnées.
void QPainter::drawPoint(const QPoint &position)
Dessine un point unique à l'position indiquée en utilisant la couleur du stylo actuel.
Il s'agit d'une fonction surchargée.
void QPainter::drawPoint(int x, int y)
Dessine un point unique à la position (x, y).
Il s'agit d'une fonction surchargée.
void QPainter::drawPoints(const QPointF *points, int pointCount)
Dessine les premiers points de l'pointCount s du tableau points en utilisant la couleur du stylo actuel.
Voir aussi Système de coordonnées.
void QPainter::drawPoints(const QPolygon &points)
Trace les points du vecteur points.
Il s'agit d'une fonction surchargée.
void QPainter::drawPoints(const QPolygonF &points)
Trace les points du vecteur points.
Il s'agit d'une fonction surchargée.
void QPainter::drawPoints(const QPoint *points, int pointCount)
Dessine les pointCount premiers points du tableau points en utilisant la couleur du stylo actuel.
Il s'agit d'une fonction surchargée.
void QPainter::drawPolygon(const QPointF *points, int pointCount, Qt::FillRule fillRule = Qt::OddEvenFill)
Dessine le polygone défini par les premiers points d'pointCount s du tableau points à l'aide du stylo et du pinceau actuels.
![]() |
Le premier point est implicitement relié au dernier point, et le polygone est rempli avec l'brush() actuel.
Si fillRule est Qt::WindingFill, le polygone est rempli à l’aide de l’algorithme de remplissage « winding ». Si fillRule est Qt::OddEvenFill, le polygone est rempli à l’aide de l’algorithme de remplissage « odd-even ». Voir Qt::FillRule pour une description plus détaillée de ces règles de remplissage.
Voir également drawConvexPolygon(), drawPolyline() et Système de coordonnées.
void QPainter::drawPolygon(const QPolygon &points, Qt::FillRule fillRule = Qt::OddEvenFill)
Dessine le polygone défini par l'points ion fournie en utilisant la règle de remplissage « fillRule ».
Il s'agit d'une fonction surchargée.
void QPainter::drawPolygon(const QPolygonF &points, Qt::FillRule fillRule = Qt::OddEvenFill)
Dessine le polygone défini par l'points donnée en utilisant la règle de remplissage « fillRule ».
Il s'agit d'une fonction surchargée.
void QPainter::drawPolygon(const QPoint *points, int pointCount, Qt::FillRule fillRule = Qt::OddEvenFill)
Dessine le polygone défini par les premiers points de l'pointCount s du tableau points.
Il s’agit d’une fonction surchargée.
void QPainter::drawPolyline(const QPointF *points, int pointCount)
Dessine la polyligne définie par les premiers points de la fonction « pointCount » dans « points » à l'aide du stylo actuel.
Notez que, contrairement à la fonction drawPolygon(), le dernier point n' est pas relié au premier, et la polyligne n'est pas remplie.
Voir également drawLines(), drawPolygon() et Système de coordonnées.
void QPainter::drawPolyline(const QPolygon &points)
Dessine la polyligne définie par l'points on fournie à l'aide du stylo actuel.
Il s'agit d'une fonction surchargée.
void QPainter::drawPolyline(const QPolygonF &points)
Dessine la polyligne définie par l'points on fournie à l'aide du stylo actuel.
Il s'agit d'une fonction surchargée.
void QPainter::drawPolyline(const QPoint *points, int pointCount)
Dessine la polyligne définie par les premiers points d'pointCount s dans « points » à l'aide du stylo actuel.
Il s'agit d'une fonction surchargée.
void QPainter::drawRect(const QRectF &rectangle)
Dessine l'rectangle e actuel avec le stylo et le pinceau actuels.
Un rectangle rempli a une taille de rectangle.size(). Un rectangle avec contour a une taille de rectangle.size() plus la largeur du stylo.
Voir également drawRects(), drawPolygon() et Système de coordonnées.
void QPainter::drawRect(const QRect &rectangle)
Dessine l'rectangle e actuelle avec le stylo et le pinceau sélectionnés.
Il s'agit d'une fonction surchargée.
void QPainter::drawRect(int x, int y, int width, int height)
Dessine un rectangle dont le coin supérieur gauche est situé aux coordonnées (x, y) et dont les paramètres « width » et « height » sont fournis.
Il s'agit d'une fonction surchargée.
void QPainter::drawRects(const QRectF *rectangles, int rectCount)
Dessine la première rectCount de l'rectangles donné à l'aide du stylo et du pinceau actuels.
Voir aussi drawRect().
void QPainter::drawRects(const QList<QRect> &rectangles)
Dessine l'rectangles on fournie à l'aide du stylo et du pinceau actuels.
Il s'agit d'une fonction surchargée.
void QPainter::drawRects(const QList<QRectF> &rectangles)
Dessine l'rectangles on indiquée à l'aide du stylo et du pinceau actuels.
Il s'agit d'une fonction surchargée.
void QPainter::drawRects(const QRect *rectangles, int rectCount)
Dessine le premier élément « rectCount » de l’ rectangles donné à l’aide du stylo et du pinceau actuels.
Il s'agit d'une fonction surchargée.
void QPainter::drawRoundedRect(const QRectF &rect, qreal xRadius, qreal yRadius, Qt::SizeMode mode = Qt::AbsoluteSize)
Dessine le rectangle rect spécifié avec des coins arrondis.
Les arguments xRadius et yRadius spécifient les rayons des ellipses définissant les coins du rectangle arrondi. Lorsque mode vaut Qt::RelativeSize, xRadius et yRadius sont spécifiés en pourcentage de la moitié de la largeur et de la hauteur du rectangle respectivement, et doivent être compris entre 0,0 et 100,0.
Un rectangle rempli a pour taille rect.size(). Un rectangle avec contour a pour taille rect.size() plus la largeur du stylo.
![]() |
Voir également drawRect() et QPen.
void QPainter::drawRoundedRect(const QRect &rect, qreal xRadius, qreal yRadius, Qt::SizeMode mode = Qt::AbsoluteSize)
Dessine le rectangle donné rect avec des coins arrondis.
Il s'agit d'une fonction surchargée.
void QPainter::drawRoundedRect(int x, int y, int w, int h, qreal xRadius, qreal yRadius, Qt::SizeMode mode = Qt::AbsoluteSize)
Dessine le rectangle spécifié x, y, w, h avec des coins arrondis.
Il s'agit d'une fonction surchargée.
void QPainter::drawStaticText(const QPointF &topLeftPosition, const QStaticText &staticText)
Affiche l'staticText on fournie à l'topLeftPosition on indiquée.
Le texte sera dessiné en utilisant la police et la transformation définies sur le peintre. Si la police et/ou la transformation définies sur le peintre sont différentes de celles utilisées pour initialiser la mise en page de l'QStaticText, celle-ci devra alors être recalculée. Utilisez QStaticText::prepare() pour initialiser staticText avec la police et la transformation avec lesquelles il sera dessiné ultérieurement.
Si ` topLeftPosition ` n’est pas identique à ce qu’il était lors de l’initialisation de ` staticText ` ou lors de son dernier tracé, il y aura un léger surcoût lors du déplacement du texte vers sa nouvelle position.
Remarque : si la transformation du peintre n’est pas affine, alors staticText sera dessiné à l’aide d’appels classiques à drawText(), ce qui annulera tout gain de performance potentiel.
Remarque : la position y correspond au haut de la police.
Voir également QStaticText.
void QPainter::drawStaticText(const QPoint &topLeftPosition, const QStaticText &staticText)
Affiche l'staticText à l'adresse topLeftPosition.
Remarque : la position y correspond au haut de la police.
Il s'agit d'une fonction surchargée.
void QPainter::drawStaticText(int left, int top, const QStaticText &staticText)
Dessine l'staticText e aux coordonnées left et top.
Remarque : la position y correspond au haut de la police.
Il s'agit d'une fonction surchargée.
void QPainter::drawText(const QPointF &position, const QString &text)
Dessine l'text on fournie selon le sens d'écriture actuellement défini, en commençant à l'position ion indiquée.
Cette fonction ne gère pas le caractère de nouvelle ligne (\n), car elle ne peut pas diviser le texte en plusieurs lignes et ne peut pas afficher ce caractère. Utilisez plutôt la surcharge de QPainter::drawText() qui prend un rectangle si vous souhaitez dessiner plusieurs lignes de texte avec le caractère de nouvelle ligne, ou si vous souhaitez que le texte soit renvoyé à la ligne.
Par défaut, QPainter dessine le texte avec l'anticrénelage.
Remarque : la position y est utilisée comme ligne de base de la police.
Voir également setFont() et setPen().
void QPainter::drawText(const QPoint &position, const QString &text)
Dessine l'text on fournie selon le sens d'écriture actuellement défini, en commençant à l'position ion indiquée.
Par défaut, la fonction ` QPainter ` affiche le texte avec lissage.
Remarque : la position y est utilisée comme ligne de base de la police.
Il s'agit d'une fonction surchargée.
Voir également setFont() et setPen().
void QPainter::drawText(const QRectF &rectangle, const QString &text, const QTextOption &option = QTextOption())
Dessine l'text spécifié dans l'rectangle, en utilisant l'option pour contrôler son positionnement, sa direction et son orientation. Les options fournies dans option remplacent celles définies sur l'objet QPainter lui-même.
Par défaut, QPainter affiche le texte avec lissage des contours.
Remarque : la coordonnée y de rectangle est utilisée comme haut de la police.
Il s’agit d’une fonction surchargée.
Voir également setFont() et setPen().
void QPainter::drawText(int x, int y, const QString &text)
Dessine l'text on fournie à la position (x, y), en utilisant la direction du texte actuellement définie par le peintre.
Par défaut, la fonction ` QPainter ` affiche le texte avec lissage.
Remarque : la position y est utilisée comme ligne de base de la police.
Il s’agit d’une fonction surchargée.
Voir également setFont() et setPen().
void QPainter::drawText(const QRect &rectangle, int flags, const QString &text, QRect *boundingRect = nullptr)
Dessine l'text donné à l'intérieur de l'rectangle fournie, conformément à l'flags spécifiée.
L'boundingRect (si elle n'est pas nulle) définit les dimensions que doit avoir le rectangle de délimitation pour englober l'intégralité du texte. Par exemple, dans l'image suivante, la ligne pointillée représente l'boundingRect telle que calculée par la fonction, et la ligne en pointillés représente l'rectangle:
![]() | |
Par défaut, QPainter affiche le texte avec lissage.
Remarque : la coordonnée y de ` rectangle ` est utilisée comme haut de la police.
Il s'agit d'une fonction surchargée.
Voir également setFont() et setPen().
void QPainter::drawText(const QRectF &rectangle, int flags, const QString &text, QRectF *boundingRect = nullptr)
Dessine l'text donné à l'intérieur de l'rectangle fourni. L'rectangle, associé à l'alignement flags, définit les ancrages de l'text.
![]() | |
L’ boundingRect (s’il n’est pas nul) définit les limites du rectangle de délimitation nécessaire pour englober l’intégralité du texte. Par exemple, dans l’image suivante, la ligne pointillée représente l’ boundingRect telle qu’elle est calculée par la fonction, et la ligne en pointillés représente l’ rectangle:
![]() | |
L’argument ` flags ` est un OU binaire des indicateurs suivants :
- Qt::AlignLeft
- Qt::AlignRight
- Qt::AlignHCenter
- Qt::AlignJustify
- Qt::AlignTop
- Qt::AlignBottom
- Qt::AlignVCenter
- Qt::AlignCenter
- Qt::TextDontClip
- Qt::TextSingleLine
- Qt::TextExpandTabs
- Qt::TextShowMnemonic
- Qt::TextWordWrap
- Qt::TextIncludeTrailingSpaces
Par défaut, QPainter affiche le texte avec lissage des contours.
Remarque : la coordonnée y de rectangle est utilisée comme haut de la police.
Il s'agit d'une fonction surchargée.
Voir également Qt::AlignmentFlag, Qt::TextFlag, boundingRect() et layoutDirection().
void QPainter::drawText(int x, int y, int width, int height, int flags, const QString &text, QRect *boundingRect = nullptr)
Dessine l'text donné à l'intérieur du rectangle dont les coordonnées d'origine sont (x, y), width et height.
L’ boundingRect (s’il n’est pas nul) définit les dimensions que doit avoir le rectangle de délimitation pour englober l’intégralité du texte. Par exemple, dans l’image suivante, la ligne pointillée représente boundingRect tel qu’il est calculé par la fonction, et la ligne en pointillés représente le rectangle défini par x, y, width et height:
![]() | |
L'argument ` flags ` est un OU binaire des indicateurs suivants :
- Qt::AlignLeft
- Qt::AlignRight
- Qt::AlignHCenter
- Qt::AlignJustify
- Qt::AlignTop
- Qt::AlignBottom
- Qt::AlignVCenter
- Qt::AlignCenter
- Qt::TextSingleLine
- Qt::TextExpandTabs
- Qt::TextShowMnemonic
- Qt::TextWordWrap
Par défaut, QPainter dessine le texte avec lissage.
Remarque : la position y est utilisée comme haut de la police.
Il s'agit d'une fonction surchargée.
Voir également Qt::AlignmentFlag, Qt::TextFlag, setFont() et setPen().
void QPainter::drawTiledPixmap(const QRectF &rectangle, const QPixmap &pixmap, const QPointF &position = QPointF())
Dessine une image en mosaïque ( pixmap) à l'intérieur de l'rectangle spécifiée, dont l'origine se trouve au point position indiqué.
L'appel à drawTiledPixmap() revient à appeler plusieurs fois drawPixmap() pour remplir (mosaïquer) une zone avec une image pixmap, mais peut s'avérer bien plus efficace selon le système de fenêtrage sous-jacent.
La fonction drawTiledPixmap() produira le même motif de mosaïque sur les écrans à haute résolution (avec devicePixelRatio > 1) que sur les écrans à résolution normale. Définissez la valeur devicePixelRatio de la fonction pixmap pour contrôler la taille des tuiles. Par exemple, en la définissant sur 2, vous divisez par deux la largeur et la hauteur des tuiles (sur les écrans 1x et 2x), et obtenez un rendu haute résolution sur les écrans 2x.
Le décalage de l’ position est exprimé en pixels indépendants du périphérique par rapport au coin supérieur gauche de l’ rectangle. La propriété position peut être utilisée pour aligner le motif répétitif à l’intérieur de l’ rectangle.
Voir également drawPixmap().
void QPainter::drawTiledPixmap(const QRect &rectangle, const QPixmap &pixmap, const QPoint &position = QPoint())
Dessine un pixmap en mosaïque, à l'intérieur de l'rectangle donné, dont l'origine est située au position donné.
Il s'agit d'une fonction surchargée.
void QPainter::drawTiledPixmap(int x, int y, int width, int height, const QPixmap &pixmap, int sx = 0, int sy = 0)
Dessine une pixmap en mosaïque dans le rectangle spécifié.
(x, y) spécifie le point supérieur gauche du périphérique de dessin sur lequel l'image doit être dessinée ; avec les paramètres width et height.
(sx, sy) spécifie l’origine à l’intérieur du rectangle spécifié où la carte de pixels sera dessinée. La position de l’origine est spécifiée en pixels indépendants du périphérique par rapport à (x, y). La valeur par défaut est (0, 0).
Il s'agit d'une fonction surchargée.
bool QPainter::end()
Mette fin au processus de dessin. Toutes les ressources utilisées pendant le dessin sont libérées. Vous n'avez normalement pas besoin d'appeler cette méthode, car elle est appelée par le destructeur.
Renvoie ` true ` si le peintre n'est plus actif ; sinon, renvoie ` false`.
Voir également begin() et isActive().
void QPainter::endNativePainting()
Rétablit l'état du « painter » après l'exécution manuelle de commandes de dessin natives. Permet au « painter » de rétablir tout état natif dont il dépend avant d'appeler d'autres commandes de dessin.
Voir aussi beginNativePainting().
void QPainter::eraseRect(const QRectF &rectangle)
Efface la zone située à l'intérieur de l'rectangle. Équivaut à l'appel de
fillRect(rectangle, background());Voir aussi fillRect().
void QPainter::eraseRect(const QRect &rectangle)
Efface la zone située à l'intérieur de l'rectangle.
Il s'agit d'une fonction surchargée.
void QPainter::eraseRect(int x, int y, int width, int height)
Efface la zone située à l'intérieur du rectangle dont les coins sont les points (x, y), en utilisant les paramètres width et height fournis.
Il s'agit d'une fonction surchargée.
void QPainter::fillPath(const QPainterPath &path, const QBrush &brush)
Remplit l'path spécifiée à l'aide de l'brush fournie. Le contour n'est pas tracé.
Vous pouvez également spécifier un QColor à la place d’un QBrush; le constructeur QBrush (qui prend un argument QColor ) créera automatiquement un pinceau à motif plein.
Voir également drawPath().
void QPainter::fillRect(const QRectF &rectangle, const QBrush &brush)
Remplit l'rectangle on fournie avec l'brush on spécifiée.
Vous pouvez également spécifier un « QColor » à la place d’un « QBrush » ; le constructeur « QBrush » (qui prend un argument « QColor ») créera automatiquement un pinceau à motif uni.
Voir également drawRect().
void QPainter::fillRect(const QRect &rectangle, QGradient::Preset preset)
Remplit l'rectangle on fournie avec le dégradé spécifié preset.
Il s'agit d'une fonction surchargée.
void QPainter::fillRect(const QRect &rectangle, Qt::BrushStyle style)
Remplit l'rectangle on indiquée avec le pinceau style spécifié.
Il s'agit d'une fonction surchargée.
void QPainter::fillRect(const QRect &rectangle, Qt::GlobalColor color)
Remplit l'rectangle on fournie avec l'color on spécifiée.
Il s'agit d'une fonction surchargée.
void QPainter::fillRect(const QRect &rectangle, const QBrush &brush)
Remplit l'rectangle on fournie avec l'brush on spécifiée.
Il s'agit d'une fonction surchargée.
void QPainter::fillRect(const QRect &rectangle, const QColor &color)
Remplit l'rectangle on fournie avec l'color on spécifiée.
Il s'agit d'une fonction surchargée.
void QPainter::fillRect(const QRectF &rectangle, QGradient::Preset preset)
Remplit l’ rectangle on fournie avec le dégradé spécifié preset.
Il s’agit d’une fonction surchargée.
void QPainter::fillRect(const QRectF &rectangle, Qt::BrushStyle style)
Remplit l'rectangle on indiquée avec le pinceau style spécifié.
Il s'agit d'une fonction surchargée.
void QPainter::fillRect(const QRectF &rectangle, Qt::GlobalColor color)
Remplit l'rectangle on fournie avec l'color on spécifiée.
Il s'agit d'une fonction surchargée.
void QPainter::fillRect(const QRectF &rectangle, const QColor &color)
Remplit l'rectangle on fournie avec l'color on spécifiée.
Il s'agit d'une fonction surchargée.
void QPainter::fillRect(int x, int y, int width, int height, QGradient::Preset preset)
Remplit le rectangle dont les coins de départ sont (x, y) avec les valeurs données width et height, en utilisant le dégradé donné preset.
Il s'agit d'une fonction surchargée.
void QPainter::fillRect(int x, int y, int width, int height, Qt::BrushStyle style)
Remplit le rectangle dont les coins de départ sont (x, y) avec les valeurs width et height fournies, en utilisant le pinceau style spécifié.
Il s'agit d'une fonction surchargée.
void QPainter::fillRect(int x, int y, int width, int height, Qt::GlobalColor color)
Remplit le rectangle dont les coins sont situés en (x, y) avec les valeurs données width et height, en utilisant la fonction donnée color.
Il s'agit d'une fonction surchargée.
void QPainter::fillRect(int x, int y, int width, int height, const QBrush &brush)
Remplit le rectangle dont les coins sont situés en (x, y) avec les valeurs données width et height, en utilisant la fonction donnée brush.
Il s'agit d'une fonction surchargée.
void QPainter::fillRect(int x, int y, int width, int height, const QColor &color)
Remplit le rectangle dont les coins sont situés aux coordonnées (x, y) avec les valeurs width et height, en utilisant la fonction color.
Il s'agit d'une fonction surchargée.
const QFont &QPainter::font() const
Renvoie la police actuellement définie pour l'affichage du texte.
Voir également setFont(), drawText() et Settings.
QFontInfo QPainter::fontInfo() const
Renvoie les informations relatives à la police du « painter » si celui-ci est actif. Dans le cas contraire, la valeur renvoyée n'est pas définie.
Voir également font(), isActive() et Settings.
QFontMetrics QPainter::fontMetrics() const
Renvoie les métriques de police pour le peintre si celui-ci est actif. Sinon, la valeur renvoyée n'est pas définie.
Voir également font(), isActive() et Settings.
bool QPainter::hasClipping() const
Renvoie « true » si le découpage a été activé ; sinon, renvoie « false ».
Voir également setClipping() et Clipping.
bool QPainter::isActive() const
Renvoie ` true ` si ` begin()` a été appelée et si ` end()` n'a pas encore été appelée ; sinon, renvoie ` false`.
Voir également ` begin()` et ` QPaintDevice::paintingActive()`.
Qt::LayoutDirection QPainter::layoutDirection() const
Renvoie le sens de mise en page utilisé par le moteur de rendu lors de l'affichage du texte.
Voir également QTextOption::textDirection(), setLayoutDirection(), drawText() et Settings.
qreal QPainter::opacity() const
Renvoie l'opacité du peintre. La valeur par défaut est 1.
Voir aussi setOpacity().
QPaintEngine *QPainter::paintEngine() const
Renvoie le moteur de peinture sur lequel le « painter » opère actuellement si celui-ci est actif ; sinon, renvoie 0.
Voir également isActive().
const QPen &QPainter::pen() const
Renvoie le stylo actuellement utilisé par le peintre.
Voir également setPen() et Settings.
QPainter::RenderHints QPainter::renderHints() const
Renvoie un indicateur précisant les consignes de rendu définies pour ce « painter ».
Voir également setRenderHints(), testRenderHint() et Rendering Quality.
void QPainter::resetTransform()
Réinitialise toutes les transformations effectuées à l'aide des fonctions translate(), scale(), shear(), rotate(), setWorldTransform(), setViewport() et setWindow().
Voir également Coordinate Transformations.
void QPainter::restore()
Restaure l'état actuel du « painter » (retire un état enregistré de la pile).
Voir aussi save().
void QPainter::rotate(qreal angle)
Fait pivoter le système de coordonnées dans le sens des aiguilles d'une montre. Le paramètre « angle » est exprimé en degrés.
Voir également setWorldTransform() et Coordinate Transformations.
void QPainter::save()
Enregistre l'état actuel du « painter » (place l'état dans une pile). Un appel à save() doit être suivi d'un appel correspondant à restore(); la fonction end() désemballe la pile.
Voir également restore().
void QPainter::scale(qreal sx, qreal sy)
Mise à l'échelle du système de coordonnées par (sx, sy).
Voir également setWorldTransform() et Coordinate Transformations.
void QPainter::setBackground(const QBrush &brush)
Définit le pinceau d'arrière-plan de l'outil « peintre » sur l'brush spécifiée.
Le pinceau d’arrière-plan est celui qui est utilisé pour remplir les zones lors du tracé de texte opaque, de lignes pointillées et d’images bitmap. Le pinceau d’arrière-plan n’a aucun effet en mode d’arrière-plan transparent (qui est le mode par défaut).
Voir également background(), setBackgroundMode() et Settings.
void QPainter::setBackgroundMode(Qt::BGMode mode)
Définit le mode d'arrière-plan de l'outil de dessin sur la valeur indiquée mode
Qt::TransparentMode (valeur par défaut) dessine des lignes pointillées et du texte sans définir les pixels d'arrière-plan. La fonction Qt::OpaqueMode remplit ces espaces avec la couleur d'arrière-plan actuelle.
Notez que pour dessiner un bitmap ou un pixmap de manière transparente, vous devez utiliser ` QPixmap::setMask()`.
Voir également backgroundMode(), setBackground() et Settings.
void QPainter::setBrush(const QBrush &brush)
Définit le pinceau du peintre selon l'brush on indiquée.
Le pinceau du peintre définit la manière dont les formes sont remplies.
Voir également brush() et Settings.
[since 6.11] void QPainter::setBrush(QBrush &&brush)
Il s'agit d'une fonction surchargée.
Cette fonction a été introduite dans Qt 6.11.
[since 6.9] void QPainter::setBrush(QColor color)
Définit le pinceau du peintre comme un pinceau plein avec l'color spécifiée.
Il s'agit d'une fonction surchargée.
Cette fonction a été introduite dans Qt 6.9.
void QPainter::setBrush(Qt::BrushStyle style)
Définit la couleur du pinceau du peintre sur le noir et l'style spécifiée.
Il s'agit d'une fonction surchargée.
[since 6.9] void QPainter::setBrush(Qt::GlobalColor color)
Définit le pinceau du peintre comme un pinceau plein avec l'color spécifiée.
Il s'agit d'une fonction surchargée.
Cette fonction a été introduite dans Qt 6.9.
void QPainter::setBrushOrigin(const QPointF &position)
Définit l'origine du pinceau sur position.
L'origine du pinceau spécifie la coordonnée (0, 0) du pinceau du peintre.
Notez que si la fonction brushOrigin() était nécessaire pour adopter l’arrière-plan du parent d’un widget dans Qt 3, ce n’est plus le cas depuis Qt 4, car le peintre de Qt 4 ne dessine pas l’arrière-plan à moins que vous ne le lui demandiez explicitement en définissant la propriété autoFillBackground du widget sur true.
Voir également brushOrigin() et Settings.
void QPainter::setBrushOrigin(const QPoint &position)
Définit l'origine du pinceau à l'position indiquée.
Il s'agit d'une fonction surchargée.
void QPainter::setBrushOrigin(int x, int y)
Définit l'origine du pinceau sur le point (x, y).
Il s'agit d'une fonction surchargée.
void QPainter::setClipPath(const QPainterPath &path, Qt::ClipOperation operation = Qt::ReplaceClip)
Active le découpage et définit le chemin de découpage pour l'outil de peinture sur l'path, avec l'operation de découpage.
Notez que le tracé de découpe est spécifié en coordonnées logiques (du peintre).
Voir également clipPath(), clipRegion() et Clipping.
void QPainter::setClipRect(const QRectF &rectangle, Qt::ClipOperation operation = Qt::ReplaceClip)
Active le découpage et définit la zone de découpage selon l'rectangle s fournies, en utilisant l'operation de découpage indiquée. Par défaut, cette opération remplace le rectangle de découpage actuel.
Notez que le rectangle de découpe est spécifié en coordonnées logiques (du peintre).
Voir également clipRegion(), setClipping() et Clipping.
void QPainter::setClipRect(int x, int y, int width, int height, Qt::ClipOperation operation = Qt::ReplaceClip)
Active le découpage et définit la zone de découpage comme étant le rectangle dont les coordonnées de départ sont (x, y), avec les paramètres width et height spécifiés.
void QPainter::setClipRect(const QRect &rectangle, Qt::ClipOperation operation = Qt::ReplaceClip)
Active le clipping et définit la zone de clipping sur l'rectangle spécifiée à l'aide de l'operation de clipping indiquée.
Il s'agit d'une fonction surchargée.
void QPainter::setClipRegion(const QRegion ®ion, Qt::ClipOperation operation = Qt::ReplaceClip)
Définit la région de découpage selon l'region donnée à l'aide de l'operation de découpage spécifiée. Par défaut, l'opération de découpage consiste à remplacer la région de découpage actuelle.
Notez que la région de découpage est exprimée en coordonnées logiques.
Voir également clipRegion(), setClipRect() et Clipping.
void QPainter::setClipping(bool enable)
Active le clipping si enable a la valeur « true », ou le désactive si enable a la valeur « false ».
Voir également hasClipping() et Clipping.
void QPainter::setCompositionMode(QPainter::CompositionMode mode)
Définit le mode de composition sur l'mode spécifiée.
Avertissement : seul un QPainter fonctionnant sur un QImage prend entièrement en charge tous les modes de composition. Les modes RasterOp sont pris en charge pour X11, comme décrit dans compositionMode().
Voir également compositionMode().
void QPainter::setFont(const QFont &font)
Définit la police du peintre sur la valeur indiquée par ` font`.
Cette police est utilisée par les fonctions drawText() suivantes. La couleur du texte est identique à celle du stylo.
Si vous définissez une police qui n’est pas disponible, Qt trouve une police similaire. La fonction ` font()` renvoie la police que vous avez définie à l’aide de `setFont()`, tandis que ` fontInfo()` renvoie la police effectivement utilisée (qui peut être la même).
Voir également font(), drawText() et Settings.
void QPainter::setLayoutDirection(Qt::LayoutDirection direction)
Définit la direction de mise en page utilisée par le moteur de dessin lors de l'affichage du texte, en indiquant l'direction.
La valeur par défaut est ` Qt::LayoutDirectionAuto`, ce qui déterminera implicitement la direction à partir du texte dessiné.
Voir également QTextOption::setTextDirection(), layoutDirection(), drawText() et Settings.
void QPainter::setOpacity(qreal opacity)
Définit l'opacité de l'outil de dessin sur opacity. La valeur doit être comprise entre 0,0 et 1,0, où 0,0 correspond à une transparence totale et 1,0 à une opacité totale.
L'opacité définie pour l'outil de dessin s'applique séparément à chaque opération de dessin. Le remplissage d'une forme et le tracé de son contour sont considérés comme des opérations de dessin distinctes.
Voir également opacity().
void QPainter::setPen(const QPen &pen)
Définit le stylo du peintre sur l'pen spécifiée.
L'pen définit la manière de dessiner les lignes et les contours, ainsi que la couleur du texte.
[since 6.11] void QPainter::setPen(QPen &&pen)
Il s'agit d'une fonction surchargée.
Cette fonction a été introduite dans Qt 6.11.
void QPainter::setPen(Qt::PenStyle style)
Définit le stylo du peintre avec l'style, une largeur de 1 et la couleur noire.
Il s'agit d'une fonction surchargée.
void QPainter::setPen(const QColor &color)
Définit le stylo du peintre avec le style « Qt::SolidLine », une largeur de 1 et la couleur spécifiée « color ».
Il s'agit d'une fonction surchargée.
void QPainter::setRenderHint(QPainter::RenderHint hint, bool on = true)
Définit l'hint de rendu indiquée sur le « painter » si la valeur de « on » est « true » ; sinon, efface cette .
Voir également setRenderHints(), renderHints() et Rendering Quality.
void QPainter::setRenderHints(QPainter::RenderHints hints, bool on = true)
Définit l'hints de rendu spécifiée sur le « painter » si la valeur de « on » est « true » ; sinon, efface les indications de rendu.
Voir également setRenderHint(), renderHints() et Rendering Quality.
void QPainter::setTransform(const QTransform &transform, bool combine = false)
Définit la matrice de transformation globale. Si la valeur de combine est « true », l'transform spécifiée est combinée avec la matrice actuelle ; dans le cas contraire, elle remplace la matrice actuelle.
Voir également transform() et setWorldTransform().
void QPainter::setViewTransformEnabled(bool enable)
Active les transformations de vue si la valeur de ` enable ` est `true`, ou désactive les transformations de vue si la valeur de ` enable ` est `false`.
Voir également viewTransformEnabled() et Conversion fenêtre-fenêtre de visualisation.
void QPainter::setViewport(const QRect &rectangle)
Définit le rectangle de la fenêtre d'affichage du peintre sur l'rectangle donné et active les transformations de vue.
Le rectangle de la fenêtre d'affichage fait partie de la transformation de la vue. La fenêtre d'affichage définit le système de coordonnées de l'appareil. Son équivalent, la fonction ` window()` (), définit le système de coordonnées logiques.
Le rectangle de la fenêtre d’affichage par défaut est identique à celui du périphérique.
Voir également ` viewport()`, ` viewTransformEnabled()` et Conversion fenêtre-fenêtre de visualisation.
void QPainter::setViewport(int x, int y, int width, int height)
Définit le rectangle de la fenêtre d'affichage du peintre comme étant le rectangle dont les coordonnées de départ sont (x, y), avec les paramètres width et height fournis.
Il s'agit d'une fonction surchargée.
void QPainter::setWindow(const QRect &rectangle)
Définit la fenêtre du peintre sur l'rectangle spécifiée et active les transformations de vue.
Le rectangle de la fenêtre fait partie de la transformation de la vue. La fenêtre définit le système de coordonnées logique. Sa fonction jumelle, ` viewport()`, définit le système de coordonnées du périphérique.
Le rectangle de fenêtre par défaut est identique au rectangle du périphérique.
Voir également ` window()`, ` viewTransformEnabled()` et Conversion fenêtre-fenêtre de visualisation.
void QPainter::setWindow(int x, int y, int width, int height)
Définit la fenêtre du peintre sur le rectangle dont les coordonnées de départ sont (x, y) et dont les coordonnées de fin sont width et height.
Il s'agit d'une fonction surchargée.
void QPainter::setWorldMatrixEnabled(bool enable)
Active les transformations si enable est vrai, ou les désactive si enable est faux. La matrice de transformation du monde n'est pas modifiée.
Voir également worldMatrixEnabled(), worldTransform() et Coordinate Transformations.
void QPainter::setWorldTransform(const QTransform &matrix, bool combine = false)
Définit la matrice de transformation globale. Si la valeur de « combine » est « true », l'matrix e spécifiée est combinée avec la matrice actuelle ; dans le cas contraire, elle remplace la matrice actuelle.
Voir également worldTransform(), transform() et setTransform().
void QPainter::shear(qreal sh, qreal sv)
Transforme le système de coordonnées selon (sh, sv).
Voir également setWorldTransform() et Coordinate Transformations.
void QPainter::strokePath(const QPainterPath &path, const QPen &pen)
Dessine le contour (tracés) du chemin path à l'aide du stylo spécifié par pen
Voir également fillPath() et Drawing.
bool QPainter::testRenderHint(QPainter::RenderHint hint) const
Renvoie « true » si « hint » est défini ; sinon, renvoie « false ».
Voir également renderHints() et setRenderHint().
const QTransform &QPainter::transform() const
Alias de la fonction worldTransform(). Renvoie la matrice de transformation mondiale.
Voir également setTransform() et worldTransform().
void QPainter::translate(const QPointF &offset)
Translate le système de coordonnées selon l'offset e spécifiée ; c'est-à-dire que l'offset e spécifiée est ajoutée aux points.
Voir également setWorldTransform() et Coordinate Transformations.
void QPainter::translate(const QPoint &offset)
Translate le système de coordonnées selon l'offset e indiquée.
Il s’agit d’une fonction surchargée.
void QPainter::translate(qreal dx, qreal dy)
Translate le système de coordonnées d'un vecteur (dx, dy).
Il s'agit d'une fonction surchargée.
bool QPainter::viewTransformEnabled() const
Renvoie « true » si la transformation de la vue est activée ; sinon, renvoie « false ».
Voir également setViewTransformEnabled() et worldTransform().
QRect QPainter::viewport() const
Renvoie le rectangle de la fenêtre d'affichage.
Voir également setViewport() et setViewTransformEnabled().
QRect QPainter::window() const
Renvoie le rectangle de la fenêtre.
Voir aussi setWindow() et setViewTransformEnabled().
bool QPainter::worldMatrixEnabled() const
Renvoie « true » si la transformation du monde est activée ; sinon, renvoie « false ».
Voir également setWorldMatrixEnabled(), worldTransform() et Système de coordonnées.
const QTransform &QPainter::worldTransform() const
Renvoie la matrice de transformation mondiale.
Voir aussi setWorldTransform().
© 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.






















