QPainter Class
La classe QPainter exécute des peintures de bas niveau sur les widgets et autres dispositifs de peinture. Plus d'informations...
| En-tête : | #include <QPainter> |
| CMake : | find_package(Qt6 REQUIRED COMPONENTS Gui)target_link_libraries(mytarget PRIVATE Qt6::Gui) |
| qmake : | QT += gui |
| Inherited By : |
- 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 (int x, int y, int spanAngle) | 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 startAngle, int spanAngle) |
| void (int x, int y, int spanAngle) | 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 (const QRectF &rectangle) | drawEllipse(const QRect &rectangle) |
| void | drawEllipse(const QPoint ¢er, int rx, int ry) |
| void (const QPointF ¢er, int rx, int ry) | drawEllipse(const QPointF ¢er, qreal rx, qreal ry) |
| void (int x, int y, int rx, int ry) | drawEllipse(int x, int y, int width, int height) |
| void (const QPointF &position) | drawGlyphRun(const QPointF &position, const QGlyphRun &glyphs) |
| void | drawImage(const QRectF &target, 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 (const QRect &rectangle, const QImage &image) | drawImage(const QRectF &rectangle, const QImage &image) |
| void (const QRectF &rectangle, const QImage &image) | 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 &line) |
| void | drawLine(const QLine &line) |
| void | drawLine(const QPoint &p1, const QPoint &p2) |
| null (const QPointF &p1, const QPoint &p2) | 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> &lines) |
| void | drawLines(const QList<QLineF> &lines) |
| void | drawLines(const QList<QPoint> &pointPairs) |
| void | drawLines(const QList<QPointF> &pointPairs) |
| void (const QLine *lines, const QList<QPoint> &pointPairs) | drawLines(const QLine *lines, int lineCount) |
| void (const QLine *lines, int lineCount) | drawLines(const QPoint *paires de points, int lineCount) |
| void | drawLines(const QPointF *paires de points, int lineCount) |
| void | drawPath(const QPainterPath &path) |
| void (const QPointF &point, int lineCount) | drawPicture(const QPointF &point, const QPicture &picture) |
| void (const QPointF &point, const QPicture &picture) | drawPicture(const QPoint &point, const QPicture &picture) |
| void (int x, int y, const QPicture &picture) | drawPicture(int x, int y, const QPicture &picture) |
| void (const QRectF &recture &picture) | drawPie(const QRectF &rectangle, int startAngle, int spanAngle) |
| void | drawPie(const QRect &rectangle, int startAngle, int spanAngle) |
| void (int x, int y, int spanAngle) | 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 (const QPoint &point, const QPixmap &pixmap) | drawPixmap(const QPointF &point, const QPixmap &pixmap) |
| void (const QRect &rect) | drawPixmap(const QRect &rectangle, const QPixmap &pixmap) |
| void (const QRect &rectangle, const QPixmap &pixmap) | drawPixmap(const QPoint &point, const QPixmap &pixmap, const QRect &source) |
| void | drawPixmap(const QPointF &point, const QPixmap &pixmap, const QRectF &source) |
| void (const QRect &target) | drawPixmap(const QRect &target, const QPixmap &pixmap, const QRect &source) |
| void (int x, int y, const QRectF &source) | drawPixmap(int x, int y, const QPixmap &pixmap) |
| void (int x, int y, const QPixmap &pixmap) | 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 (int x, int y, int sx, int sy, int sw, int sh) | 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 (const QPointF *points, int pointCount) | drawPoints(const QPolygon &points) |
| void (const QPolygonF &points) | drawPoints(const QPolygonF &points) |
| void (const QPoint *points, int pointCount) | 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 (const QPoint *points, int pointCount) | drawPolyline(const QPoint *points, int pointCount) |
| void | drawRect(const QRectF &rectangle) |
| void (const QRectF &rectangle) | drawRect(const QRect &rectangle) |
| void | drawRect(int x, int y, int width, int height) |
| void (int x, int y, int width, int height) | 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 &topLeftPosition, const QStaticText &staticText) |
| void (int gauche, int haut, const QStaticText &staticText) | drawStaticText(int left, int top, const QStaticText &staticText) |
| void (int gauche, int haut, const QStaticText &staticText) | drawText(const QPointF &position, const QString &text) |
| void (const QPointF &position, const QString &text) | drawText(const QPoint &position, const QString &text) |
| void (const QRectF &reposition, const QString &text) | 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 (const QRectF &rectangle) | eraseRect(const QRect &rectangle) |
| void (int x, int y, int width, int height) | 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 (const QRect &rectangle, Qt::BrushStyle style) | fillRect(const QRect &rectangle, Qt::BrushStyle style) |
| void (const QRect &rectangle, Qt::BrushStyle style) | fillRect(const QRect &rectangle, Qt::GlobalColor color) |
| void (const QRect &rectangle, Qt::GlobalColor color) | fillRect(const QRect &rectangle, const QBrush &brush) |
| void (const QRect &rectangle, const QBrush &brush) | fillRect(const QRect &rectangle, const QColor &color) |
| void (const QRectF &rectangle, const QColor &color) | fillRect(const QRectF &rectangle, QGradient::Preset preset) |
| void (const QRectF &rectangle, const QGradient::Preset) | fillRect(const QRectF &rectangle, Qt::BrushStyle style) |
| void (const QRectF &rectangle, Qt::BrushStyle style) | fillRect(const QRectF &rectangle, Qt::GlobalColor color) |
| void (const QRectF &rectangle, Qt::GlobalColor color) | fillRect(const QRectF &rectangle, const QColor &color) |
| void (const QRectF &rectangle, const QColor &color) | 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 width, int height, Qt::GlobalColor color) |
| void | fillRect(int x, int y, int width, int height, const QBrush &brush) |
| void (int x, int y, int width, int height, const QBrush &brush) | fillRect(int x, int y, int width, int height, const QColor &color) |
| 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 color) |
| 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 (const QFont &font) | 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 (int x, int y, int width, int height) | setViewport(int x, int y, int width, int height) |
| void (const QRect &rectangle) | setWindow(const QRect &rectangle) |
| void (int x, int y, int width, int height) | setWindow(int x, int y, int width, int height) |
| 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 (qreal dx, qreal dy) | 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 pour réaliser la plupart des dessins dont les programmes d'interface graphique ont besoin. Il peut tout dessiner, des simples lignes aux formes complexes comme les tartes et les accords. Il peut également dessiner du texte aligné et des pixmaps. Normalement, 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 n'importe quel objet héritant de la classe QPaintDevice.
L'utilisation courante de QPainter se fait à l'intérieur de l'événement de peinture d'un widget : Construire et personnaliser (par exemple, définir le stylo ou le pinceau) le peintre. Puis dessiner. N'oubliez pas de détruire l'objet QPainter après avoir dessiné. Par exemple, la fonctionnalité de base de QPainter est la suivante
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 qui vous permettent de personnaliser les paramètres de QPainter et sa qualité de rendu, et d'autres qui permettent le détourage. En outre, vous pouvez contrôler la manière dont 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 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 peinture 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 peindre à 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, device() renvoie le périphérique de peinture sur lequel le peintre peint, et paintEngine() renvoie le moteur de peinture sur lequel le peintre opère actuellement. Pour plus d'informations, voir le système de peinture.
Il est parfois souhaitable de faire peindre quelqu'un d'autre sur un support inhabituel QPaintDevice. QPainter prend en charge une fonction statique pour ce faire, setRedirected().
Attention : Lorsque le dispositif de peinture 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() est la police utilisée pour dessiner le texte. Si le peintre isActive(), vous pouvez récupérer des informations sur la police actuellement définie, et ses métriques, en utilisant les 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 des lignes ou des limites.
- backgroundMode() définit s'il y a un background() ou non, c'est-à-dire s'il s'agit de Qt::OpaqueMode ou Qt::TransparentMode.
- background() ne s'applique que lorsque backgroundMode() est Qt::OpaqueMode et que pen() est un pointillé. Dans ce cas, il décrit la couleur des pixels d'arrière-plan dans le pointillé.
- brushOrigin() définit l'origine des brosses en mosaïque, normalement 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, voir la section Coordinate Transformations et la documentation sur le système de coordonnées.
- hasClipping() indique si le peintre clippe ou non. (Si le peintre clippe, il clippe sur clipRegion().
- layoutDirection() définit la direction de la mise en page utilisée par le peintre lorsqu'il dessine du texte.
- worldMatrixEnabled() indique si la transformation du monde est activée.
- viewTransformEnabled() indique si la transformation de la vue est activée.
Notez que certains de ces paramètres reflètent les paramètres de certains dispositifs de peinture, par exemple QWidget::font(). La fonction QPainter::begin() (ou, de manière équivalente, le constructeur de QPainter) copie ces attributs à partir du dispositif de peinture.
Vous pouvez à tout moment sauvegarder l'état du QPainter en appelant la fonction save() qui sauvegarde tous les paramètres disponibles sur une pile interne. La fonction restore() les récupère.
Dessin
QPainter fournit des fonctions pour 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 en utilisant le stylo et le pinceau actuels.
La classe QPainter fournit également la fonction fillRect() qui remplit le tableau QRect, avec le tableau QBrush, et la fonction eraseRect() qui efface la zone à l'intérieur du rectangle donné.
Toutes ces fonctions ont des versions en nombres entiers et en virgule flottante.
![]() | Exemple de dessin de base L'exemple de dessin de base montre comment afficher des primitives graphiques de base dans une variété de 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, envisagez de créer une page QPainterPath et de la dessiner à l'aide de drawPath().
| Exemple de chemins de peintre La classe QPainterPath fournit un conteneur pour les opérations de peinture, ce qui permet de construire et de réutiliser des formes graphiques. L'exemple des chemins de peinture montre comment les chemins de peinture peuvent être utilisés pour construire des formes complexes pour le rendu. | ![]() |
QPainter fournit également la fonction fillPath() qui remplit le site QPainterPath avec le site QBrush, et la fonction strokePath() qui dessine le contour du chemin donné (c'est-à-dire qu'elle trace le chemin).
Voir aussi l'exemple Vector Deformation qui montre comment utiliser des techniques vectorielles avancées pour dessiner du texte à l'aide d'un QPainterPath, l'exemple Gradients qui montre les différents types de gradients disponibles dans Qt, et l'exemple Path Stroking qui montre les motifs de traits intégrés de Qt et montre comment des motifs personnalisés peuvent être utilisés pour étendre la gamme des motifs disponibles.
Le dessin de texte se fait à l'aide de drawText(). Lorsque vous avez besoin d'un positionnement précis, boundingRect() vous indique où une commande drawText() donnée dessinera.
Dessiner des cartes de pixels et des images
Il existe des fonctions permettant de dessiner des images/photos, à savoir drawPixmap(), drawImage() et drawTiledPixmap(). Les fonctions drawPixmap() et drawImage() produisent toutes deux le même résultat, mais drawPixmap() est plus rapide à l'écran, tandis que drawImage() peut être plus rapide sur QPrinter ou d'autres périphériques.
Il existe une fonction drawPicture() qui dessine le contenu d'une page entière QPicture. La fonction drawPicture() est la seule fonction qui ne tient pas compte de tous les paramètres du peintre, car QPicture a ses propres paramètres.
Dessiner des versions haute résolution de cartes et d'images en pixels
Les versions haute résolution des cartes pixel ont une valeur de rapport pixel-périphérique supérieure à 1 (voir QImageReader, QPixmap::devicePixelRatio()). Si cette valeur correspond à celle de l'image sous-jacente QPaintDevice, elle est dessinée directement sur l'appareil sans transformation supplémentaire.
QPixmap C'est par exemple le cas lorsqu'on dessine une image de 64x64 pixels avec un rapport de pixels de 2 sur un écran à haut DPI qui a également un rapport de pixels de 2. Notez que l'image est alors effectivement de 32x32 pixels dans l'espace utilisateur. Les chemins de code dans Qt qui calculent la géométrie de la disposition en fonction de la taille de la pixmap utiliseront cette taille. L'effet net de ceci est que la pixmap est affichée en tant que pixmap à haut DPI plutôt qu'en tant que pixmap de grande taille.
Qualité du rendu
Pour obtenir un résultat de rendu optimal avec QPainter, vous devez utiliser QImage, indépendant de la plate-forme, comme dispositif de peinture ; en d'autres termes, l'utilisation de QImage garantira une représentation identique des pixels sur toutes les plates-formes.
La classe QPainter permet également de contrôler la qualité du rendu grâce à son enum RenderHint et à la prise en charge de la précision en virgule flottante : Toutes les fonctions de dessin des primitives ont des versions en virgule flottante.
painter.drawEllipse(QRectF(-diameter / 2.0, -diameter / 2.0, diameter, diameter));
Elles sont souvent utilisées en combinaison avec l'indice de rendu QPainter::Antialiasing.
| Comparaison de cercles concentriques avec int et float, et avec ou sans rendu anticrénelé. L'utilisation des versions en virgule flottante produit des cercles régulièrement espacés. Le rendu anti-crénelage donne des cercles lisses. | ![]() |
L'énumération RenderHint spécifie des drapeaux pour QPainter qui peuvent être respectés ou non par un moteur donné. QPainter::Antialiasing indique que le moteur doit antialiaser les bords des primitives si possible, QPainter::TextAntialiasing indique que le moteur doit antialiaser le texte si possible, et QPainter::SmoothPixmapTransform indique que le moteur doit utiliser un algorithme de transformation de pixmap lisse.
La fonction renderHints() renvoie un drapeau qui spécifie les conseils de rendu définis pour ce peintre. La fonction setRenderHint() permet d'activer ou de désactiver la valeur actuellement définie pour RenderHints.
Transformations de coordonnées
Normalement, QPainter fonctionne sur le propre système de coordonnées de l'appareil (généralement des 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 en fonction d'un décalage donné, la fonction rotate() pour le faire pivoter dans le sens des aiguilles d'une montre et translate() pour le translater (c'est-à-dire ajouter un décalage donné aux points). Vous pouvez également faire pivoter le système de coordonnées autour de l'origine à l'aide de la fonction shear(). Voir l'exemple des transformations affines pour une visualisation d'un système de coordonnées cisaillé.
Voir également l'exemple Transformations qui montre comment les transformations influencent la manière dont QPainter rend les primitives graphiques. Il montre en particulier comment l'ordre des transformations affecte le résultat.
| Exemple de transformations affines L'exemple des transformations affines montre la capacité de Qt à effectuer des transformations affines sur les opérations de peinture. La démo permet également à l'utilisateur d'expérimenter les opérations de transformation et de voir les résultats immédiatement. | ![]() |
Toutes les opérations de transformation opèrent sur la transformation worldTransform(). Une matrice transforme un point du plan en un autre point. Pour plus d'informations sur la matrice de transformation, voir la documentation sur le système de coordonnées et QTransform.
La fonction setWorldTransform() peut remplacer ou compléter la fonction worldTransform() actuellement définie. 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 transforme les coordonnées logiques en coordonnées du dispositif de peinture dépendant de la plate-forme. Cette dernière fonction n'est nécessaire que lorsque l'on utilise les commandes de peinture de la plateforme sur la poignée dépendante de la plateforme, et que la plateforme n'effectue pas de transformations de manière native.
Lorsque nous dessinons avec QPainter, nous spécifions des points à l'aide de coordonnées logiques qui sont ensuite converties en coordonnées physiques du dispositif de peinture. La conversion des coordonnées logiques en coordonnées physiques est gérée par la fonction combinedTransform() de QPainter, une combinaison de viewport(), window() et worldTransform(). Le viewport() représente les coordonnées physiques en spécifiant un rectangle arbitraire, le window() décrit le même rectangle en coordonnées logiques et le worldTransform() est identique à la matrice de transformation.
Voir aussi Système de coordonnées
Découpage
QPainter peut découper n'importe quelle opération de dessin en un rectangle, une région ou un chemin vectoriel. Le découpage actuel est disponible à l'aide des fonctions clipRegion() et clipPath(). La préférence pour les chemins ou les régions (plus rapide) dépend du moteur de peinture sous-jacent paintEngine(). Par exemple, le moteur de peinture QImage préfère les chemins tandis que le moteur de peinture X11 préfère les régions. La définition d'un clip se fait dans les coordonnées logiques du peintre.
Après l'écrêtage de QPainter, le périphérique de peinture peut également s'écrêter. 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. Cet écrêtage supplémentaire n'est pas reflété 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 pour combiner les pixels d'une image, la source, avec les pixels d'une autre image, la destination.
Les deux formes les plus courantes de composition sont Source et SourceOver. Source est utilisé pour dessiner des objets opaques sur un dispositif de peinture. 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é au-dessus de la destination.
Notez que la transformation de composition opère au niveau des pixels. C'est pourquoi il existe une différence entre l'utilisation de la primitive graphique elle-même et son rectangle de délimitation : Le rectangle de délimitation contient les pixels dont l'alpha == 0 (c'est-à-dire les pixels entourant la primitive). Ces pixels écraseront les pixels de l'autre image, les effaçant de fait, alors que la primitive n'écrase que sa propre zone.
![]() | Exemple de modes de composition L'exemple Composition Modes, disponible dans le répertoire examples de Qt, vous permet d'expérimenter les différents modes de composition et de voir les résultats immédiatement. |
Limitations
Si vous utilisez des coordonnées avec le moteur de peinture matricielle de Qt, il est important de noter que, bien que des coordonnées supérieures à +/-215 puissent être utilisées, toute peinture effectuée avec des coordonnées en dehors de cette plage n'est pas garantie d'être affichée ; le dessin peut être coupé. Ceci est dû à l'utilisation de short int dans l'implémentation.
Les contours générés par le stroker de Qt ne sont qu'une approximation lorsqu'il s'agit de formes courbes. Dans la plupart des cas, il est 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, c'est pourquoi Qt approxime les contours des courbes en utilisant plusieurs courbes plus petites. Pour des raisons de performance, le nombre de courbes utilisées par Qt pour ces contours est limité et, par conséquent, lorsque l'on utilise des largeurs de stylo ou des échelles importantes, l'erreur de contour augmente. Pour générer des contours avec des erreurs plus petites, il est possible d'utiliser la classe QPainterPathStroker, qui possède la fonction setCurveThreshold qui permet à l'utilisateur de spécifier la tolérance d'erreur. Une autre solution consiste à convertir d'abord les chemins en polygones, puis à dessiner les polygones à la place.
Performance
QPainter est un cadre riche 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. Et QPainter peut le faire sur une grande variété de matériel et de piles logicielles. Naturellement, la combinaison sous-jacente de matériel et de logiciel a des implications sur les performances, et garantir que chaque opération est rapide avec toutes les combinaisons de modes de composition, de brosses, d'écrêtage, de transformation, etc. est une tâche presque impossible en raison du nombre de permutations. En guise de compromis, nous avons sélectionné un sous-ensemble de l'API et des backends de QPainter, où les performances sont garanties aussi bonnes que possible pour une combinaison donnée de matériel et de logiciel.
Les backends sur lesquels nous nous concentrons en tant que moteurs de haute performance sont les suivants :
- Raster - Ce backend implémente tous les rendus en logiciel pur et est toujours utilisé pour effectuer des rendus en QImages. Pour des performances optimales, n'utilisez que les formats QImage::Format_ARGB32_Premultiplied, QImage::Format_RGB32 ou QImage::Format_RGB16. Tout autre format, y compris QImage::Format_ARGB32, est nettement moins performant. Ce moteur est utilisé par défaut pour QWidget et QPixmap.
- OpenGL 2.0 (ES) - Ce moteur est le principal moteur pour l'accélération matérielle des graphiques. Il peut être exécuté sur des ordinateurs de bureau et des appareils intégré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 site QOpenGLWidget.
Ces opérations sont les suivantes :
- Transformations simples, c'est-à-dire translation et mise à l'échelle, plus rotations de 0, 90, 180 et 270 degrés.
drawPixmap()en combinaison avec des transformations simples et l'opacité avec un mode de transformation non lisse (QPainter::SmoothPixmapTransformn'est pas activé en tant qu'indice de rendu).- Remplissage des rectangles avec des couleurs solides, des dégradés linéaires bicolores et des transformations simples.
- Découpage rectangulaire avec transformations simples et clip d'intersection.
- Modes de composition
QPainter::CompositionMode_Sourceet QPainter::CompositionMode_SourceOver. - Remplissage d'un rectangle arrondi à l'aide d'une couleur unie et d'un dégradé linéaire bicolore.
- Pixmaps 3x3 patchés, via qDrawBorderPixmap.
Cette liste donne une indication des fonctions à utiliser en toute sécurité dans une application où les performances sont essentielles. Pour certaines configurations, d'autres opérations peuvent également être rapides, mais avant d'en faire un usage intensif, il est recommandé de les comparer et de les vérifier sur le système sur lequel le logiciel fonctionnera en fin de compte. Il existe également des cas où les opérations coûteuses peuvent être utilisées, par exemple lorsque le résultat est mis en cache dans un site QPixmap.
Voir également QPaintDevice, QPaintEngine, Qt SVGExemple 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 sont utilisés pour spécifier comment les pixels d'une image, la source, sont fusionnés avec les pixels d'une autre image, la destination.
Veuillez noter que les modes d'opération matricielle par bits, désignés par le préfixe RasterOp, ne sont pris en charge que dans les moteurs X11 et de peinture matricielle. Cela signifie que la seule façon d'utiliser ces modes sur Mac est de passer par QImage. Les modes de fusion indiqués par RasterOp ne sont pas pris en charge pour les stylos et les brosses avec des composants alpha. En outre, l'activation de l'indice de rendu QPainter::Antialiasing désactive effectivement les modes RasterOp.


Le type le plus courant est SourceOver (souvent appelé mélange alpha), dans lequel le pixel source est mélangé sur le pixel de destination de manière à ce que la composante alpha de la source définisse la translucidité du pixel.
Plusieurs modes de composition nécessitent un canal alpha dans les images source ou cible pour avoir un effet. Pour des performances optimales, il est préférable d'utiliser le format d'image Format_ARGB32_Premultiplied.
Lorsqu'un mode de composition est défini, il s'applique à tous les opérateurs de peinture, aux stylos, aux pinceaux, aux dégradés et au dessin de pixmap/d'image.
| Constante | Valeur | Description du mode de composition |
|---|---|---|
QPainter::CompositionMode_SourceOver | 0 | Il s'agit du mode par défaut. L'alpha de la source est utilisé pour fusionner le pixel au-dessus de la destination. |
QPainter::CompositionMode_DestinationOver | 1 | L'alpha du pixel de destination est utilisé pour le fusionner avec 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 (mis en transparence totale) indépendamment de la source. |
QPainter::CompositionMode_Source | 3 | La sortie est le pixel source. (Il s'agit d'une opération de copie de base, identique à SourceOver lorsque le pixel source est opaque). |
QPainter::CompositionMode_Destination | 4 | La sortie est le pixel de destination. Cela signifie que le mélange n'a aucun effet. Ce mode est l'inverse de CompositionMode_Source. |
QPainter::CompositionMode_SourceIn | 5 | La sortie est la source, dont l'alpha est réduit par celui de la destination. |
QPainter::CompositionMode_DestinationIn | 6 | La sortie est la destination, où l'alpha est réduit par celui de la source. Ce mode est l'inverse de CompositionMode_SourceIn. |
QPainter::CompositionMode_SourceOut | 7 | La sortie est la source, où l'alpha est réduit par l'inverse de la destination. |
QPainter::CompositionMode_DestinationOut | 8 | La sortie est la destination, où l'alpha est réduit par l'inverse de la source. Ce mode est l'inverse de CompositionMode_SourceOut. |
QPainter::CompositionMode_SourceAtop | 9 | Le pixel source est fusionné par-dessus le pixel de destination, l'alpha du pixel source étant réduit par l'alpha du pixel de destination. |
QPainter::CompositionMode_DestinationAtop | 10 | Le pixel de destination est fusionné par-dessus le pixel source, l'alpha du pixel de destination étant réduit par l'alpha du pixel de destination. Ce mode est l'inverse du mode de composition_SourceAtop. |
QPainter::CompositionMode_Xor | 11 | La source, dont l'alpha est réduit par l'inverse de l'alpha de la destination, est fusionnée avec la destination, dont l'alpha est réduit par l'inverse de l'alpha de la source. CompositionMode_Xor n'est pas la même chose que le bitwise Xor. |
QPainter::CompositionMode_Plus | 12 | L'alpha et la couleur des pixels de la source et de la destination sont additionnés. |
QPainter::CompositionMode_Multiply | 13 | Le résultat est la couleur de la source multipliée par celle de la destination. La multiplication d'une couleur par du blanc laisse la couleur inchangée, tandis que la multiplication d'une couleur par du noir produit du noir. |
QPainter::CompositionMode_Screen | 14 | Les couleurs source et destination sont inversées puis multipliées. Le tramage d'une couleur avec du blanc produit du blanc, tandis que le tramage d'une couleur avec du noir laisse la couleur inchangée. |
QPainter::CompositionMode_Overlay | 15 | Multiplie ou tamise 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 couleur la plus foncée de la source et de la destination est sélectionnée. |
QPainter::CompositionMode_Lighten | 17 | La couleur la plus claire de la source et de la 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 tamise les couleurs en fonction de la couleur source. Une couleur source claire éclaircira la couleur de destination, tandis qu'une couleur source foncée assombrira la couleur de destination. |
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 couleur la plus claire. Peindre avec du blanc inverse la couleur de destination, tandis que peindre avec du noir laisse la couleur de destination inchangée. |
QPainter::CompositionMode_Exclusion | 23 | Similaire à CompositionMode_Différence, mais avec un contraste plus faible. Peindre avec du blanc inverse la couleur de destination, tandis que peindre avec du noir laisse la couleur de destination inchangée. |
QPainter::RasterOp_SourceOrDestination | 24 | Effectue une opération OU bit à bit sur les pixels source et destination (src OR dst). |
QPainter::RasterOp_SourceAndDestination | 25 | Effectue une opération ET bit à bit sur les pixels source et destination (src AND dst). |
QPainter::RasterOp_SourceXorDestination | 26 | Effectue une opération XOR bit à bit sur les pixels source et destination (src XOR dst). |
QPainter::RasterOp_NotSourceAndNotDestination | 27 | Effectue une opération NOR bit à bit sur les pixels source et destination ((NOT src) AND (NOT dst)). |
QPainter::RasterOp_NotSourceOrNotDestination | 28 | Effectue une opération NAND par bit sur les pixels source et destination ((NOT src) OR (NOT dst)). |
QPainter::RasterOp_NotSourceXorDestination | 29 | Effectue une opération bit à bit où les pixels de la source sont inversés, puis XOR avec la destination ((NOT src) XOR dst). |
QPainter::RasterOp_NotSource | 30 | Effectue une opération par bit où les pixels de la source sont inversés (NOT src). |
QPainter::RasterOp_NotSourceAndDestination | 31 | Effectue une opération par bit où la source est inversée et ensuite AND avec la destination ((NOT src) AND dst). |
QPainter::RasterOp_SourceAndNotDestination | 32 | Effectue une opération par bit où la source est AND avec les pixels de destination inversés (src AND (NOT dst)). |
QPainter::RasterOp_NotSourceOrDestination | 33 | Effectue une opération par bit où la source est inversée et ensuite 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 mis à 1 indépendamment de la source. |
QPainter::RasterOp_NotDestination | 37 | Effectue une opération par bit où les pixels de la destination sont inversés (NOT dst). |
QPainter::RasterOp_SourceOrNotDestination | 34 | Effectue une opération par bit où la source est OU avec les pixels de destination inversés (src OR (NOT dst)). |
Voir également compositionMode(), setCompositionMode(), Composition Modes, et Exemple de composition d'image.
enum QPainter::PixmapFragmentHint
flags QPainter::PixmapFragmentHints
| Constante | Valeur | Description |
|---|---|---|
QPainter::OpaqueHint | 0x01 | Indique que les fragments de pixmap à dessiner sont opaques. Les fragments opaques sont potentiellement plus rapides à dessiner. |
Le type PixmapFragmentHints est un typedef pour QFlags<PixmapFragmentHint>. Il stocke une combinaison OU de valeurs PixmapFragmentHint.
Voir aussi QPainter::drawPixmapFragments() et QPainter::PixmapFragment.
enum QPainter::RenderHint
flags QPainter::RenderHints
Les Renderhints sont utilisés pour spécifier des drapeaux à QPainter qui peuvent ou non être respectés par un moteur donné.
| Constante | Valeur | Description |
|---|---|---|
QPainter::Antialiasing | 0x01 | Indique que le moteur doit antialiaser les bords des primitives si possible. |
QPainter::TextAntialiasing | 0x02 | Indique que le moteur doit antialiaser le texte si possible. Pour désactiver de force l'anticrénelage du texte, n'utilisez pas cette indication. Définissez plutôt QFont::NoAntialias dans 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 le plus proche voisin. |
QPainter::VerticalSubpixelPositioning | 0x08 | Permet au texte d'être positionné à des fractions de pixels verticalement et horizontalement, si cela est pris en charge par le moteur de polices. Ceci est actuellement supporté par Freetype sur toutes les plateformes lorsque la préférence hinting est QFont::PreferNoHinting, ainsi que sur macOS. Dans la plupart des cas d'utilisation, cela n'améliorera pas la qualité visuelle, mais peut augmenter la consommation de mémoire et réduire les performances de rendu du texte. Il n'est donc pas recommandé de l'activer, sauf si le cas d'utilisation l'exige. Un tel cas d'utilisation pourrait être l'alignement des glyphes avec d'autres primitives visuelles. Cette valeur a été ajoutée dans Qt 6.1. |
QPainter::LosslessImageRendering | 0x40 | Utiliser un rendu d'image sans perte, dans la mesure du possible. Actuellement, cette indication n'est utilisée que lorsque QPainter est employé pour produire un fichier PDF via QPrinter ou QPdfWriter, où les appels drawImage()/drawPixmap() encoderont les images en utilisant un algorithme de compression sans perte au lieu d'une compression JPEG avec perte. Cette valeur a été ajoutée dans Qt 5.13. |
QPainter::NonCosmeticBrushPatterns | 0x80 | Lorsque vous peignez avec un pinceau avec un des styles de motifs prédéfinis, transformez également le motif, ainsi que l'objet peint. Par défaut, le motif est traité comme un motif cosmétique, de sorte que les pixels du motif correspondent directement 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()
Construit un peintre.
[explicit] QPainter::QPainter(QPaintDevice *device)
Construit un peintre qui commence immédiatement à peindre la peinture device.
Ce constructeur est pratique pour les peintres de courte durée, par exemple dans un QWidget::paintEvent() et ne doit être utilisé qu'une seule fois. Le constructeur appelle begin() pour vous 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 lorsque l'initialisation du peintre a échoué, vous devriez plutôt utiliser begin() et end() pour peindre sur des périphériques externes, par exemple des imprimantes.
Voir également begin() et end().
[noexcept] QPainter::~QPainter()
Détruit le peintre.
const QBrush &QPainter::background() const
Renvoie la brosse d'arrière-plan actuelle.
Voir aussi setBackground() et Settings.
Qt::BGMode QPainter::backgroundMode() const
Renvoie le mode d'arrière-plan actuel.
Voir aussi setBackgroundMode() et Settings.
bool QPainter::begin(QPaintDevice *device)
Commence à peindre la peinture device et renvoie true en cas de succès ; sinon, renvoie false.
Notez que tous les paramètres du peintre (setPen(), setBrush() etc.) sont réinitialisés aux valeurs par défaut lorsque begin() est appelé.
Les erreurs qui peuvent se produire sont des problèmes graves, comme 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 time
Notez que la plupart du temps, vous pouvez utiliser l'un des constructeurs au lieu de begin(), et que end() est automatiquement exécuté lors de la destruction.
Attention : Un dispositif de peinture ne peut être peint que par un seul peintre à la fois.
Attention : La peinture sur un QImage au format QImage::Format_Indexed8 n'est pas prise en charge.
Voir aussi end() et QPainter().
void QPainter::beginNativePainting()
Rince le pipeline de peinture et prépare l'utilisateur à émettre des commandes directement au contexte graphique sous-jacent. Doit être suivi d'un appel à endNativePainting().
Notez que seuls les états modifiés par le moteur de peinture sous-jacent seront réinitialisés à leurs états par défaut respectifs. Les états que nous réinitialisons peuvent changer 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 pochoir 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 claire sont réinitialisés à leurs valeurs par défaut
- le masque de pochoir, l'opération de pochoir et la fonction de pochoir sont réinitialisés à leurs valeurs par défaut
- la couleur actuelle est réinitialisée au 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é à l'état par défaut par endNativePainting(). Voici un exemple qui montre le mélange des commandes de peinture et des 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 aussi endNativePainting().
QRectF QPainter::boundingRect(const QRectF &rectangle, int flags, const QString &text)
Renvoie le rectangle de délimitation de text tel qu'il apparaîtra lorsqu'il sera dessiné à l'intérieur de rectangle avec flags à l'aide de font() ; c'est-à-dire que la fonction vous indique où la fonction drawText() dessinera lorsqu'elle recevra les mêmes arguments.
Si l'adresse text ne tient pas dans l'adresse rectangle avec l'adresse flags, la fonction renvoie le rectangle requis.
L'argument flags est un OU binaire des drapeaux 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 drapeaux d'alignement horizontal ou plusieurs drapeaux d'alignement vertical sont activés, l'alignement résultant est indéfini.
Voir aussi drawText(), Qt::Alignment, et Qt::TextFlag.
QRect QPainter::boundingRect(const QRect &rectangle, int flags, const QString &text)
Renvoie le rectangle de délimitation de text tel qu'il apparaîtra lorsqu'il sera dessiné à l'intérieur de rectangle avec flags en utilisant font().
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 drapeaux comme un OU bit à bit de Qt::AlignmentFlag et Qt::TextFlag, cette fonction surchargée prend un argument option. La classe QTextOption fournit une description des propriétés générales du texte riche.
Il s'agit d'une fonction surchargée.
Voir aussi QTextOption.
QRect QPainter::boundingRect(int x, int y, int w, int h, int flags, const QString &text)
Renvoie le rectangle de délimitation de text tel qu'il apparaîtra lorsqu'il sera dessiné à l'intérieur du rectangle commençant au point (x, y) avec la largeur w et la hauteur h.
Il s'agit d'une fonction surchargée.
const QBrush &QPainter::brush() const
Renvoie la brosse actuelle du peintre.
Voir aussi QPainter::setBrush() et Settings.
QPoint QPainter::brushOrigin() const
Renvoie l'origine actuelle de la brosse. Il est préférable d'utiliser QPainter::brushOriginF() pour obtenir l'origine exacte.
Voir aussi setBrushOrigin() et Settings.
[since 6.11] QPointF QPainter::brushOriginF() const
Renvoie l'origine actuelle de la brosse.
Cette fonction a été introduite dans Qt 6.11.
Voir aussi setBrushOrigin() et Settings.
QRectF QPainter::clipBoundingRect() const
Renvoie le rectangle de délimitation du clip actuel s'il existe un clip ; sinon, renvoie un rectangle vide. Notez que la région du clip est donnée en coordonnées logiques.
Il n'est pas garanti que le rectangle de délimitation soit serré.
Voir aussi setClipRect(), setClipPath(), et setClipRegion().
QPainterPath QPainter::clipPath() const
Renvoie le chemin du clip actuel en coordonnées logiques.
Attention : QPainter ne stocke pas explicitement le clip combiné, car cette opération est gérée par le système sous-jacent QPaintEngine, de sorte que le chemin est recréé à la demande et transformé dans le système de coordonnées logiques actuel. Il s'agit d'une opération potentiellement coûteuse.
Voir également setClipPath(), clipRegion() et setClipping().
QRegion QPainter::clipRegion() const
Renvoie la région du clip actuellement définie. Notez que la région du clip est donnée en coordonnées logiques.
Attention : QPainter ne stocke pas explicitement le clip combiné car cela est géré par le système sous-jacent QPaintEngine, de sorte que le chemin est recréé à la demande et transformé dans le système de coordonnées logiques actuel. Il s'agit d'une opération potentiellement coûteuse.
Voir également setClipRegion(), clipPath() et setClipping().
QTransform QPainter::combinedTransform() const
Renvoie la matrice de transformation combinant la fenêtre/port de vue actuelle et la transformation du monde.
Voir aussi setWorldTransform(), setWindow(), et setViewport().
QPainter::CompositionMode QPainter::compositionMode() const
Renvoie le mode de composition actuel.
Voir aussi CompositionMode et setCompositionMode().
QPaintDevice *QPainter::device() const
Renvoie le dispositif de peinture sur lequel ce peintre est en train de peindre, ou nullptr si le peintre n'est pas actif.
Voir aussi isActive().
const QTransform &QPainter::deviceTransform() const
Renvoie la matrice qui transforme les coordonnées logiques en coordonnées du périphérique de peinture dépendant de la plate-forme.
Cette fonction n' est nécessaire que lorsque l'on utilise les commandes de peinture de la plate-forme sur la poignée dépendante de la plate-forme (Qt::HANDLE), et que la plate-forme n'effectue pas les transformations de manière native.
L'énumération QPaintEngine::PaintEngineFeature peut être interrogée pour déterminer si la plate-forme effectue les transformations ou non.
Voir aussi worldTransform() et QPaintEngine::hasFeature().
void QPainter::drawArc(const QRectF &rectangle, int startAngle, int spanAngle)
Dessine l'arc défini par les données rectangle, startAngle et spanAngle.
Les angles startAngle et spanAngle doivent être spécifiés en 1/16e de degré, c'est-à-dire qu'un cercle complet équivaut à 5760 (16 * 360). Les valeurs positives des angles signifient le sens inverse des aiguilles d'une montre, tandis que les valeurs négatives signifient le sens des aiguilles d'une montre. Le zéro degré se trouve à la position 3 heures.
![]() |
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 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 commençant à (x, y) avec les éléments spécifiés width et height, et les éléments donnés 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 données rectangle, startAngle et spanAngle. La corde est remplie avec la valeur actuelle de brush().
Les angles startAngle et spanAngle doivent être spécifiés en 1/16e de degré, c'est-à-dire qu'un cercle complet équivaut à 5760 (16 * 360). Des valeurs positives pour les angles signifient un sens contraire aux aiguilles d'une montre, tandis que des valeurs négatives signifient le sens des aiguilles d'une montre. Le zéro degré se trouve à la position 3 heures.
![]() |
Voir également drawArc(), drawPie() et Système de coordonnées.
void QPainter::drawChord(const QRect &rectangle, int startAngle, int spanAngle)
Dessine l'accord défini par les 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 l'accord défini par le rectangle commençant à (x, y) avec les éléments spécifiés width et height, et les éléments donnés 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 pointCount points du tableau points en utilisant le stylo actuel.
![]() |
Le premier point est implicitement connecté au dernier point, et le polygone est rempli avec le 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, les résultats sont indéfinis.
Sur certaines plateformes (par exemple X11), la fonction drawConvexPolygon() peut être plus rapide que la fonction drawPolygon().
Voir aussi drawPolygon(), drawPolyline(), et Système de coordonnées.
void QPainter::drawConvexPolygon(const QPolygon &polygon)
Dessine le polygone convexe défini par polygon en utilisant le stylo et le pinceau actuels.
Il s'agit d'une fonction surchargée.
void QPainter::drawConvexPolygon(const QPolygonF &polygon)
Dessine le polygone convexe défini par polygon en utilisant le stylo et le 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 premiers pointCount points du tableau points en utilisant le stylo actuel.
Il s'agit d'une fonction surchargée.
void QPainter::drawEllipse(const QRectF &rectangle)
Dessine l'ellipse définie par la donnée rectangle.
Une ellipse remplie a une taille de rectangle.size(). Une ellipse tracée 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'adresse rectangle.
Il s'agit d'une fonction surchargée.
void QPainter::drawEllipse(const QPoint ¢er, int rx, int ry)
Dessine l'ellipse positionnée à center avec les rayons rx et ry.
Il s'agit d'une fonction surchargée.
void QPainter::drawEllipse(const QPointF ¢er, qreal rx, qreal ry)
Dessine l'ellipse positionnée à center avec les rayons 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 commençant à (x, y) avec les données width et height.
Il s'agit d'une fonction surchargée.
void QPainter::drawGlyphRun(const QPointF &position, const QGlyphRun &glyphs)
Dessine les glyphes représentés par glyphs à position. Le site position indique le bord de la ligne de base pour la chaîne de glyphes. Les glyphes seront extraits de la police sélectionnée sur glyphs et à des décalages donnés par les positions dans glyphs.
Voir aussi 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ée image dans le rectangle target du dispositif de peinture.
Note : L'image est mise à l'échelle pour s'adapter au rectangle, si la taille de l'image et celle du rectangle ne sont pas identiques.
Note : Voir Drawing High Resolution Versions of Pixmaps and Images pour savoir comment ceci est affecté par 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 flags pour spécifier comment vous préférez que cela se produise.
Voir également drawPixmap() et QImage::devicePixelRatio().
void QPainter::drawImage(const QPoint &point, const QImage &image)
Dessine l'image donnée image à l'endroit donné point.
Il s'agit d'une fonction surchargée.
void QPainter::drawImage(const QPointF &point, const QImage &image)
Dessine l'image donnée image à l'endroit donné point.
Il s'agit d'une fonction surchargée.
void QPainter::drawImage(const QRect &rectangle, const QImage &image)
Dessine l'image image dans l'image rectangle.
Remarque : l'image est mise à l'échelle pour s'adapter au rectangle, si la taille de l'image et celle du rectangle ne concordent pas.
Il s'agit d'une fonction surchargée.
void QPainter::drawImage(const QRectF &rectangle, const QImage &image)
Dessine l'image image dans l'image rectangle.
Remarque : l'image est mise à l'échelle pour s'adapter au rectangle, si la taille de l'image et celle du rectangle ne concordent 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 portion rectangulaire source de l'image donnée image avec son origine à l'image donnée 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 portion rectangulaire source de l'image donnée image avec son origine à l'image donnée point.
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ée image dans le rectangle target du dispositif de peinture.
Remarque : l'image est mise à l'échelle pour s'adapter au rectangle, si la taille de l'image et celle du rectangle ne concordent 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 à (x, y) en copiant une partie de image dans le dispositif de peinture.
(x, y) indique le point supérieur gauche du dispositif de peinture sur lequel le dessin doit être effectué. (sx, sy) indique le point supérieur gauche de 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 négative), signifie que l'image doit être dessinée jusqu'en bas à droite.
Il s'agit d'une fonction surchargée.
void QPainter::drawLine(const QLineF &line)
Dessine une ligne définie par line.
Voir aussi 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 de p1 à p2.
Il s'agit d'une fonction surchargée.
void QPainter::drawLine(const QPointF &p1, const QPointF &p2)
Trace une ligne de p1 à p2.
Il s'agit d'une fonction surchargée.
void QPainter::drawLine(int x1, int y1, int x2, int y2)
Dessine une ligne de (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 lineCount dans le tableau lines en utilisant le stylo actuel.
Voir aussi drawLine() et drawPolyline().
void QPainter::drawLines(const QList<QLine> &lines)
Dessine l'ensemble des lignes définies par la liste lines en utilisant le stylo et le 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 en utilisant le stylo et le 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 dans le vecteur pointPairs en utilisant le 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 dans le vecteur pointPairs en utilisant le stylo actuel. S'il y a un nombre impair de points dans le tableau, le dernier point sera ignoré.
Il s'agit d'une fonction surchargée.
void QPainter::drawLines(const QLine *lines, int lineCount)
Dessine les premières lineCount lignes du tableau lines en utilisant le stylo actuel.
Il s'agit d'une fonction surchargée.
void QPainter::drawLines(const QPoint *pointPairs, int lineCount)
Dessine les premières lineCount lignes du tableau pointPairs en utilisant le stylo actuel.
Il s'agit d'une fonction surchargée.
void QPainter::drawLines(const QPointF *pointPairs, int lineCount)
Dessine les premières lineCount lignes du tableau pointPairs en utilisant le stylo actuel. Les lignes sont spécifiées sous forme de paires de points, de sorte que le nombre d'entrées dans pointPairs doit être au moins égal à lineCount * 2.
Il s'agit d'une fonction surchargée.
void QPainter::drawPath(const QPainterPath &path)
Dessine le peintre donné path en utilisant le stylo actuel pour le contour et le pinceau actuel pour le remplissage.
![]() | QPainterPath path; path.moveTo(20, 80); path.lineTo(20, 30); path.cubicTo(80, 0, 50, 50, 80, 80); QPainter painter(this); painter.drawPath(path); |
Voir aussi l'exemple Chemins de peinture et l'exemple Déformation vectorielle.
void QPainter::drawPicture(const QPointF &point, const QPicture &picture)
Rejoue la commande picture donnée à la commande point donnée.
La classe QPicture est un dispositif de peinture qui enregistre et reproduit les commandes QPainter. Une image sérialise les commandes du peintre vers un périphérique IO dans un format indépendant de la plateforme. Tout ce qui peut être peint sur un widget ou une pixmap 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 préservé par cette fonction.
Voir aussi QPicture::play().
void QPainter::drawPicture(const QPoint &point, const QPicture &picture)
Rejoue l'adresse picture donnée à l'adresse point donnée.
Il s'agit d'une fonction surchargée.
void QPainter::drawPicture(int x, int y, const QPicture &picture)
Dessine le site picture au point (x, y).
Il s'agit d'une fonction surchargée.
void QPainter::drawPie(const QRectF &rectangle, int startAngle, int spanAngle)
Dessine une tarte définie par les données rectangle, startAngle et spanAngle.
La tarte est remplie avec la valeur actuelle de brush().
Les angles startAngle et spanAngle doivent être spécifiés en 1/16e de degré, c'est-à-dire qu'un cercle complet équivaut à 5760 (16 * 360). Des valeurs positives pour les angles signifient un sens contraire aux aiguilles d'une montre, tandis que des valeurs négatives signifient le sens des aiguilles d'une montre. Le zéro degré se trouve à la position 3 heures.
![]() |
Voir également drawEllipse(), drawChord() et Système de coordonnées.
void QPainter::drawPie(const QRect &rectangle, int startAngle, int spanAngle)
Dessine une tarte définie par les données rectangle, startAngle et 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 la tarte définie par le rectangle commençant à (x, y) avec les éléments spécifiés width et height, et les éléments donnés startAngle et spanAngle.
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'adresse pixmap donnée dans l'adresse target donnée dans le dispositif de peinture.
Note : La pixmap est mise à l'échelle pour s'adapter au rectangle, si la taille de la pixmap et celle du rectangle sont en désaccord.
Note : Voir Drawing High Resolution Versions of Pixmaps and Images pour savoir comment ceci est affecté par QPixmap::devicePixelRatio().
Si pixmap est un QBitmap, il est dessiné avec les bits qui sont "définis" à l'aide de la couleur du stylo. Si backgroundMode est Qt::OpaqueMode, les bits "non définis" sont dessinés en utilisant la couleur de la brosse d'arrière-plan ; si backgroundMode est Qt::TransparentMode, les bits "non définis" sont transparents. Le dessin de bitmaps avec des couleurs de dégradé ou de texture n'est pas pris en charge.
Voir également drawImage() et QPixmap::devicePixelRatio().
void QPainter::drawPixmap(const QPoint &point, const QPixmap &pixmap)
Dessine l'image pixmap avec son origine à l'adresse point.
Il s'agit d'une fonction surchargée.
void QPainter::drawPixmap(const QPointF &point, const QPixmap &pixmap)
Dessine l'image pixmap avec son origine à l'adresse point.
Il s'agit d'une fonction surchargée.
void QPainter::drawPixmap(const QRect &rectangle, const QPixmap &pixmap)
Dessine l'image pixmap dans l'image rectangle.
Remarque : la pixmap est mise à l'échelle pour s'adapter au rectangle, si la taille de la pixmap et celle du rectangle ne concordent pas.
Il s'agit d'une fonction surchargée.
void QPainter::drawPixmap(const QPoint &point, const QPixmap &pixmap, const QRect &source)
Dessine la portion rectangulaire source de l'image donnée pixmap avec son origine à l'image donnée point.
Il s'agit d'une fonction surchargée.
void QPainter::drawPixmap(const QPointF &point, const QPixmap &pixmap, const QRectF &source)
Dessine la portion rectangulaire source de l'image donnée pixmap avec son origine à l'image donnée 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'adresse pixmap donnée dans l'adresse target donnée dans le dispositif de peinture.
Remarque : la pixmap est mise à l'échelle pour s'adapter au rectangle, si la taille de la pixmap et celle du rectangle ne concordent pas.
Il s'agit d'une fonction surchargée.
void QPainter::drawPixmap(int x, int y, const QPixmap &pixmap)
Dessine le site pixmap à 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 le pixmap dans le rectangle à la position (x, y) avec les données width et height.
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 un pixmap à (x, y) en copiant une partie du fichier pixmap dans le périphérique de peinture.
(x, y) spécifie le point en haut à gauche du dispositif de peinture sur lequel le dessin doit être effectué. (sx, sy) indique le point supérieur gauche de pixmap qui doit être dessiné. La valeur par défaut est (0, 0).
(sw, sh) spécifie la taille de la pixmap qui doit être dessinée. La valeur par défaut, (0, 0) (et la valeur négative), signifie que le pixmap doit être dessiné jusqu'en bas à droite.
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 avec l'origine (sx, sy), la largeur sw et la hauteur sh, de l'image donnée pixmap, 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 est utilisée pour dessiner pixmap, ou un sous-rectangle de pixmap, à des positions multiples avec une échelle, une rotation et une opacité différentes. fragments est un tableau d'éléments fragmentCount spécifiant les paramètres utilisés pour dessiner chaque fragment de pixmap. Le paramètre hints peut être utilisé pour transmettre des indices de dessin.
Cette fonction est potentiellement plus rapide que de multiples appels à drawPixmap(), puisque le backend peut optimiser les changements d'état.
Voir aussi QPainter::PixmapFragment et QPainter::PixmapFragmentHint.
void QPainter::drawPoint(const QPointF &position)
Dessine un point unique à l'adresse position en utilisant la couleur du stylo actuel.
Voir aussi Système de coordonnées.
void QPainter::drawPoint(const QPoint &position)
Dessine un point unique à l'adresse position 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 pointCount points du tableau points en utilisant la couleur du stylo actuel.
Voir aussi Système de coordonnées.
void QPainter::drawPoints(const QPolygon &points)
Dessine les points du vecteur points.
Il s'agit d'une fonction surchargée.
void QPainter::drawPoints(const QPolygonF &points)
Dessine les points du vecteur points.
Il s'agit d'une fonction surchargée.
void QPainter::drawPoints(const QPoint *points, int pointCount)
Dessine les premiers pointCount 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 pointCount points du tableau points en utilisant le stylo et le pinceau actuels.
![]() |
Le premier point est implicitement connecté au dernier point, et le polygone est rempli avec la valeur courante brush().
Si fillRule est Qt::WindingFill, le polygone est rempli à l'aide de l'algorithme de remplissage par enroulement. Si fillRule est Qt::OddEvenFill, le polygone est rempli à l'aide de l'algorithme de remplissage pair-impair. Voir Qt::FillRule pour une description plus détaillée de ces règles de remplissage.
Voir aussi 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'adresse points 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'adresse points 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 pointCount points 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 pointCount dans points en utilisant le stylo actuel.
Notez que contrairement à la fonction drawPolygon(), le dernier point n' est pas connecté 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'adresse points en utilisant le stylo actuel.
Il s'agit d'une fonction surchargée.
void QPainter::drawPolyline(const QPolygonF &points)
Dessine la polyligne définie par l'adresse points en utilisant le 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 pointCount points dans points en utilisant le stylo actuel.
Il s'agit d'une fonction surchargée.
void QPainter::drawRect(const QRectF &rectangle)
Dessine le site rectangle avec le stylo et le pinceau actuels.
Un rectangle rempli a une taille de rectangle.size(). Un rectangle tracé a une taille de rectangle.size() plus la largeur du stylo.
Voir aussi drawRects(), drawPolygon() et Système de coordonnées.
void QPainter::drawRect(const QRect &rectangle)
Dessine le site rectangle avec le stylo et le pinceau actuels.
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é à (x, y) et dont les coordonnées sont width et height.
Il s'agit d'une fonction surchargée.
void QPainter::drawRects(const QRectF *rectangles, int rectCount)
Dessine le premier rectCount de l'adresse rectangles donnée en utilisant le stylo et le pinceau actuels.
Voir aussi drawRect().
void QPainter::drawRects(const QList<QRect> &rectangles)
Dessine le site rectangles en utilisant le stylo et le pinceau actuels.
Il s'agit d'une fonction surchargée.
void QPainter::drawRects(const QList<QRectF> &rectangles)
Dessine le site rectangles en utilisant le stylo et le pinceau actuels.
Il s'agit d'une fonction surchargée.
void QPainter::drawRects(const QRect *rectangles, int rectCount)
Dessine le premier rectCount de l'adresse rectangles donnée en utilisant le stylo et le 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 donné rect avec des coins arrondis.
Les arguments xRadius et yRadius spécifient les rayons des ellipses définissant les coins du rectangle arrondi. Lorsque mode est 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 une taille de rect.size(). Un rectangle tracé a une taille de 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 donné 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)
Dessine le texte donné staticText à l'endroit donné topLeftPosition.
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 QStaticText, la mise en page devra être recalculée. Utilisez QStaticText::prepare() pour initialiser staticText avec la police et la transformation avec lesquelles il sera dessiné par la suite.
Si topLeftPosition n'est pas identique à la police utilisée lors de l'initialisation de staticText ou lors de son dernier dessin, il y aura un léger surcoût lors de la translation du texte vers sa nouvelle position.
Note : Si la transformation du peintre n'est pas affine, alors staticText sera dessiné en utilisant des appels réguliers à drawText(), perdant ainsi tout potentiel d'amélioration des performances.
Note : La position y est utilisée comme le haut de la police.
Voir aussi QStaticText.
void QPainter::drawStaticText(const QPoint &topLeftPosition, const QStaticText &staticText)
Dessine le site staticText à l'adresse topLeftPosition.
Remarque : la position y est utilisée comme haut de la police.
Il s'agit d'une fonction surchargée.
void QPainter::drawStaticText(int left, int top, const QStaticText &staticText)
Dessine le site staticText aux coordonnées left et top.
Remarque : la position y est utilisée comme haut de la police.
Il s'agit d'une fonction surchargée.
void QPainter::drawText(const QPointF &position, const QString &text)
Dessine la page text avec la direction du texte actuellement définie, en commençant par la page position.
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 le caractère de nouvelle ligne. Utilisez la surcharge QPainter::drawText() qui prend un rectangle à la place si vous voulez dessiner plusieurs lignes de texte avec le caractère de nouvelle ligne, ou si vous voulez que le texte soit enveloppé.
Par défaut, QPainter dessine le texte avec un anticrénelage.
Remarque : la position y est utilisée comme ligne de base de la police.
Voir aussi setFont() et setPen().
void QPainter::drawText(const QPoint &position, const QString &text)
Dessine le site text avec la direction du texte actuellement définie, en commençant par le site position.
Par défaut, QPainter dessine le texte en anti-crénelage.
Remarque : la position y est utilisée comme ligne de base de la police.
Il s'agit d'une fonction surchargée.
Voir aussi setFont() et setPen().
void QPainter::drawText(const QRectF &rectangle, const QString &text, const QTextOption &option = QTextOption())
Dessine l'objet text dans l'espace rectangle spécifié en utilisant option pour contrôler son positionnement, sa direction et son orientation. Les options données dans option remplacent celles définies dans l'objet QPainter lui-même.
Par défaut, QPainter dessine le texte avec un anticrénelage.
Remarque : la coordonnée y de rectangle est utilisée comme haut de la police.
Il s'agit d'une fonction surchargée.
Voir aussi setFont() et setPen().
void QPainter::drawText(int x, int y, const QString &text)
Dessine le texte text à la position (x, y), en utilisant la direction du texte actuellement définie par le peintre.
Par défaut, QPainter dessine le texte en anti-crénelage.
Remarque : la position y est utilisée comme ligne de base de la police.
Il s'agit d'une fonction surchargée.
Voir aussi setFont() et setPen().
void QPainter::drawText(const QRect &rectangle, int flags, const QString &text, QRect *boundingRect = nullptr)
Dessine le texte text à l'intérieur du texte rectangle en fonction de flags.
La valeur de boundingRect (si elle n'est pas nulle) correspond à ce que doit être le rectangle de délimitation pour englober l'ensemble du texte. Par exemple, dans l'image suivante, la ligne en pointillé représente boundingRect tel que calculé par la fonction, et la ligne en pointillé représente rectangle:
![]() | QPainter painter(this); QFont font = painter.font(); font.setPixelSize(48); painter.setFont(font); const QRect rectangle = QRect(0, 0, 100, 50); QRect boundingRect; painter.drawText(rectangle, 0, tr("Hello"), &boundingRect); QPen pen = painter.pen(); pen.setStyle(Qt::DotLine); painter.setPen(pen); painter.drawRect(boundingRect.adjusted(0, 0, -pen.width(), -pen.width())); pen.setStyle(Qt::DashLine); painter.setPen(pen); painter.drawRect(rectangle.adjusted(0, 0, -pen.width(), -pen.width())); |
Par défaut, QPainter dessine le texte en anti-crénelage.
Remarque : la coordonnée y de rectangle est utilisée comme haut de la police.
Il s'agit d'une fonction surchargée.
Voir aussi setFont() et setPen().
void QPainter::drawText(const QRectF &rectangle, int flags, const QString &text, QRectF *boundingRect = nullptr)
Dessine l'image text à l'intérieur de l'image rectangle. L'adresse rectangle ainsi que l'alignement flags définissent les points d'ancrage de l'adresse text.
![]() | QPainter painter(this); painter.drawText(rect, Qt::AlignCenter, tr("Qt\nProject")); |
La valeur de boundingRect (si elle n'est pas nulle) correspond à ce que devrait être le rectangle de délimitation pour englober l'ensemble du texte. Par exemple, dans l'image suivante, la ligne en pointillé représente boundingRect tel que calculé par la fonction, et la ligne en pointillé représente rectangle:
![]() | QPainter painter(this); QFont font = painter.font(); font.setPixelSize(48); painter.setFont(font); const QRect rectangle = QRect(0, 0, 100, 50); QRect boundingRect; painter.drawText(rectangle, 0, tr("Hello"), &boundingRect); QPen pen = painter.pen(); pen.setStyle(Qt::DotLine); painter.setPen(pen); painter.drawRect(boundingRect.adjusted(0, 0, -pen.width(), -pen.width())); pen.setStyle(Qt::DashLine); painter.setPen(pen); painter.drawRect(rectangle.adjusted(0, 0, -pen.width(), -pen.width())); |
L'argument flags est un OU binaire des drapeaux 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 dessine le texte en anti-crénelage.
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 le texte text à l'intérieur du rectangle ayant pour origine (x, y), width et height.
La valeur de boundingRect (si elle n'est pas nulle) correspond à ce que devrait être le rectangle de délimitation pour englober l'ensemble du texte. Par exemple, dans l'image suivante, la ligne en pointillé représente boundingRect tel que calculé par la fonction, et la ligne en pointillé représente le rectangle défini par x, y, width et height:
![]() | QPainter painter(this); QFont font = painter.font(); font.setPixelSize(48); painter.setFont(font); const QRect rectangle = QRect(0, 0, 100, 50); QRect boundingRect; painter.drawText(rectangle, 0, tr("Hello"), &boundingRect); QPen pen = painter.pen(); pen.setStyle(Qt::DotLine); painter.setPen(pen); painter.drawRect(boundingRect.adjusted(0, 0, -pen.width(), -pen.width())); pen.setStyle(Qt::DashLine); painter.setPen(pen); painter.drawRect(rectangle.adjusted(0, 0, -pen.width(), -pen.width())); |
L'argument flags est un OU bit à bit des drapeaux 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 anticrénelage.
Remarque : la position y est utilisée comme haut de la police.
Il s'agit d'une fonction surchargée.
Voir aussi Qt::AlignmentFlag, Qt::TextFlag, setFont(), et setPen().
void QPainter::drawTiledPixmap(const QRectF &rectangle, const QPixmap &pixmap, const QPointF &position = QPointF())
Dessine une mosaïque pixmap, à l'intérieur de rectangle, avec son origine à position.
L'appel à drawTiledPixmap() est similaire à l'appel à drawPixmap() plusieurs fois pour remplir une zone avec une pixmap, mais il est potentiellement beaucoup plus efficace en fonction du système de fenêtres sous-jacent.
drawTiledPixmap() produira le même motif visuel de mosaïque sur les écrans à haute résolution (avec devicePixelRatio > 1), par rapport aux écrans à résolution normale. Définissez le devicePixelRatio sur le site pixmap pour contrôler la taille des tuiles. Par exemple, en le fixant à 2, vous divisez par deux la largeur et la hauteur de la tuile (sur les écrans 1x et 2x) et vous obtenez une sortie haute résolution sur les écrans 2x.
Le décalage position est fourni en pixels indépendants du périphérique par rapport au coin supérieur gauche de rectangle. position peut être utilisé pour aligner le motif répétitif à l'intérieur de rectangle.
Voir aussi drawPixmap().
void QPainter::drawTiledPixmap(const QRect &rectangle, const QPixmap &pixmap, const QPoint &position = QPoint())
Dessine une tuile pixmap, à l'intérieur de la tuile rectangle, avec son origine à la tuile position.
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 mosaïque pixmap dans le rectangle spécifié.
(x, y) spécifie le point en haut à gauche du dispositif de peinture sur lequel le dessin doit être effectué ; avec les données width et height.
(sx, sy) spécifie l'origine à l'intérieur du rectangle spécifié où la pixmap sera dessinée. La position d'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()
Termine la peinture. Toutes les ressources utilisées pendant la peinture sont libérées. Vous n'avez normalement pas besoin d'appeler cette fonction puisqu'elle est appelée par le destructeur.
Retourne true si le peintre n'est plus actif, sinon retourne false.
Voir aussi begin() et isActive().
void QPainter::endNativePainting()
Restaure le peintre après l'émission manuelle de commandes de peinture natives. Permet au peintre de restaurer tout état natif sur lequel il s'appuie avant d'appeler d'autres commandes de peinture.
Voir aussi beginNativePainting().
void QPainter::eraseRect(const QRectF &rectangle)
Efface la zone située à l'intérieur de l'adresse rectangle. Équivaut à appeler
fillRect(rectangle, background());Voir aussi fillRect().
void QPainter::eraseRect(const QRect &rectangle)
Efface la zone située à l'intérieur de rectangle.
Il s'agit d'une fonction surchargée.
void QPainter::eraseRect(int x, int y, int width, int height)
Efface la zone à l'intérieur du rectangle commençant à (x, y) avec les données width et height.
Il s'agit d'une fonction surchargée.
void QPainter::fillPath(const QPainterPath &path, const QBrush &brush)
Remplit le site path en utilisant le site brush. Le contour n'est pas dessiné.
Vous pouvez également spécifier un QColor au lieu d'un QBrush; le constructeur QBrush (qui prend un argument QColor ) créera automatiquement une brosse à motif solide.
Voir aussi drawPath().
void QPainter::fillRect(const QRectF &rectangle, const QBrush &brush)
Remplit le site rectangle avec le site brush spécifié.
Vous pouvez également spécifier un QColor au lieu d'un QBrush; le constructeur QBrush (qui prend un argument QColor ) créera automatiquement une brosse à motif solide.
Voir aussi drawRect().
void QPainter::fillRect(const QRect &rectangle, QGradient::Preset preset)
Remplit le site rectangle avec le gradient spécifié preset.
Il s'agit d'une fonction surchargée.
void QPainter::fillRect(const QRect &rectangle, Qt::BrushStyle style)
Remplit le site rectangle avec la brosse style spécifiée.
Il s'agit d'une fonction surchargée.
void QPainter::fillRect(const QRect &rectangle, Qt::GlobalColor color)
Remplit le site rectangle avec le site color spécifié.
Il s'agit d'une fonction surchargée.
void QPainter::fillRect(const QRect &rectangle, const QBrush &brush)
Remplit le site rectangle avec le site brush spécifié.
Il s'agit d'une fonction surchargée.
void QPainter::fillRect(const QRect &rectangle, const QColor &color)
Remplit le site rectangle avec le site color spécifié.
Il s'agit d'une fonction surchargée.
void QPainter::fillRect(const QRectF &rectangle, QGradient::Preset preset)
Remplit le site rectangle avec le gradient spécifié preset.
Il s'agit d'une fonction surchargée.
void QPainter::fillRect(const QRectF &rectangle, Qt::BrushStyle style)
Remplit le site rectangle avec la brosse style spécifiée.
Il s'agit d'une fonction surchargée.
void QPainter::fillRect(const QRectF &rectangle, Qt::GlobalColor color)
Remplit le site rectangle avec le site color spécifié.
Il s'agit d'une fonction surchargée.
void QPainter::fillRect(const QRectF &rectangle, const QColor &color)
Remplit le site rectangle avec le site color spécifié.
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 commençant à (x, y) avec les données width et height, en utilisant le gradient 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 commençant à (x, y) avec les données width et height, en utilisant la brosse style spécifiée.
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 commençant à (x, y) avec les données width et height, en utilisant la 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 commençant à (x, y) avec les données width et height, en utilisant la 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 commençant à (x, y) avec les données width et height, en utilisant la donnée color.
Il s'agit d'une fonction surchargée.
const QFont &QPainter::font() const
Renvoie la police actuellement utilisée pour dessiner le texte.
Voir aussi setFont(), drawText(), et Settings.
QFontInfo QPainter::fontInfo() const
Renvoie les informations de police pour le peintre si celui-ci est actif. Sinon, la valeur de retour est indéfinie.
Voir aussi 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 de retour est indéfinie.
Voir aussi font(), isActive(), et Settings.
bool QPainter::hasClipping() const
Renvoie true si l'écrêtage a été défini ; sinon, renvoie false.
Voir aussi setClipping() et Clipping.
bool QPainter::isActive() const
Renvoie true si begin() a été appelé et end() n'a pas encore été appelé ; sinon, renvoie false.
Voir aussi begin() et QPaintDevice::paintingActive().
Qt::LayoutDirection QPainter::layoutDirection() const
Renvoie la direction de la mise en page utilisée par le peintre lorsqu'il dessine du texte.
Voir aussi 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 peintre est en train d'opérer si le peintre est actif, sinon 0.
Voir aussi isActive().
const QPen &QPainter::pen() const
Renvoie le stylo actuel du peintre.
Voir aussi setPen() et Settings.
QPainter::RenderHints QPainter::renderHints() const
Renvoie un drapeau qui spécifie les indices de rendu qui sont définis pour ce peintre.
Voir aussi setRenderHints(), testRenderHint(), et Rendering Quality.
void QPainter::resetTransform()
Réinitialise toutes les transformations effectuées à l'aide de translate(), scale(), shear(), rotate(), setWorldTransform(), setViewport() et setWindow().
Voir aussi Coordinate Transformations.
void QPainter::restore()
Rétablit l'état actuel du peintre (retire un état sauvegardé 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()
Sauvegarde l'état actuel du peintre (pousse l'état sur une pile). Un save() doit être suivi d'un restore() correspondant ; la fonction end() déroule la pile.
Voir également restore().
void QPainter::scale(qreal sx, qreal sy)
Met à l'échelle le système de coordonnées par (sx, sy).
Voir également setWorldTransform() et Coordinate Transformations.
void QPainter::setBackground(const QBrush &brush)
Définit la brosse d'arrière-plan du peintre à l'adresse brush.
La brosse d'arrière-plan est la brosse qui est remplie lorsque l'on dessine du texte opaque, des lignes pointillées et des images bitmap. La brosse 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 du peintre à la valeur donnée. mode
Qt::TransparentMode (par défaut) dessine des lignes et du texte en pointillés sans définir les pixels d'arrière-plan. 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 la brosse du peintre à l'adresse brush.
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 la brosse du peintre comme une brosse solide avec la valeur spécifiée color.
Il s'agit d'une fonction surchargée.
Cette fonction a été introduite dans Qt 6.9.
void QPainter::setBrush(Qt::BrushStyle style)
Fixe le pinceau du peintre à la couleur noire et à la valeur spécifiée style.
Il s'agit d'une fonction surchargée.
[since 6.9] void QPainter::setBrush(Qt::GlobalColor color)
Définit la brosse du peintre comme une brosse solide avec la valeur spécifiée color.
Il s'agit d'une fonction surchargée.
Cette fonction a été introduite dans Qt 6.9.
void QPainter::setBrushOrigin(const QPointF &position)
Fixe l'origine du pinceau à position.
L'origine de la brosse spécifie la coordonnée (0, 0) de la brosse du peintre.
Notez que si brushOrigin() était nécessaire pour adopter l'arrière-plan du parent pour un widget dans Qt 3, ce n'est plus le cas puisque le peintre de Qt 4 ne peint pas l'arrière-plan à moins que vous ne lui demandiez explicitement de le faire en définissant la propriété autoFillBackground du widget à true.
Voir aussi brushOrigin() et Settings.
void QPainter::setBrushOrigin(const QPoint &position)
Fixe l'origine du pinceau à l'adresse position.
Il s'agit d'une fonction surchargée.
void QPainter::setBrushOrigin(int x, int y)
Fixe l'origine du pinceau au point (x, y).
Il s'agit d'une fonction surchargée.
void QPainter::setClipPath(const QPainterPath &path, Qt::ClipOperation operation = Qt::ReplaceClip)
Active l'écrêtage et définit le chemin d'écrêtage pour le peintre à l'adresse path, avec l'écrêtage operation.
Notez que le chemin du clip est spécifié en coordonnées logiques (peintre).
Voir également clipPath(), clipRegion() et Clipping.
void QPainter::setClipRect(const QRectF &rectangle, Qt::ClipOperation operation = Qt::ReplaceClip)
Active l'écrêtage et définit la région d'écrêtage à l'adresse rectangle en utilisant l'écrêtage operation. L'opération par défaut consiste à remplacer le rectangle d'écrêtage actuel.
Notez que le rectangle d'écrêtage est spécifié en coordonnées logiques (peintre).
Voir également clipRegion(), setClipping() et Clipping.
void QPainter::setClipRect(int x, int y, int width, int height, Qt::ClipOperation operation = Qt::ReplaceClip)
Active l'écrêtage et définit la région d'écrêtage comme étant le rectangle commençant à (x, y) avec les données width et height.
void QPainter::setClipRect(const QRect &rectangle, Qt::ClipOperation operation = Qt::ReplaceClip)
Active l'écrêtage et définit la région d'écrêtage à l'adresse rectangle en utilisant l'écrêtage operation.
Il s'agit d'une fonction surchargée.
void QPainter::setClipRegion(const QRegion ®ion, Qt::ClipOperation operation = Qt::ReplaceClip)
Définit la région du clip à l'adresse region donnée en utilisant le clip operation spécifié. L'opération de clip par défaut consiste à remplacer la région de clip actuelle.
Notez que la région du clip est donnée en coordonnées logiques.
Voir également clipRegion(), setClipRect() et Clipping.
void QPainter::setClipping(bool enable)
Active l'écrêtage si enable est vrai, ou le désactive si enable est faux.
Voir aussi hasClipping() et Clipping.
void QPainter::setCompositionMode(QPainter::CompositionMode mode)
Définit le mode de composition à l'adresse mode.
Attention : Seul un QPainter fonctionnant sur un QImage prend en charge tous les modes de composition. Les modes RasterOp sont supportés pour X11 comme décrit dans compositionMode().
Voir également compositionMode().
void QPainter::setFont(const QFont &font)
Fixe la police de caractères du peintre à la valeur donnée font.
Cette police est utilisée par les fonctions drawText() suivantes. La couleur du texte est la même que celle du stylo.
Si vous définissez une police qui n'est pas disponible, Qt trouve une police proche. font() renvoie ce que vous avez défini avec setFont() et fontInfo() renvoie la police utilisée (qui peut être la même).
Voir aussi font(), drawText(), et Settings.
void QPainter::setLayoutDirection(Qt::LayoutDirection direction)
Définit la direction de la mise en page utilisée par le peintre lorsqu'il dessine du texte, à la valeur spécifiée direction.
La valeur par défaut est Qt::LayoutDirectionAuto, qui détermine implicitement la direction à partir du texte dessiné.
Voir aussi QTextOption::setTextDirection(), layoutDirection(), drawText(), et Settings.
void QPainter::setOpacity(qreal opacity)
Définit l'opacité du peintre à opacity. La valeur doit être comprise entre 0,0 et 1,0, où 0,0 est totalement transparent et 1,0 est totalement opaque.
L'opacité définie sur le peintre s'applique à chaque opération de dessin séparément. Le remplissage d'une forme et le dessin de son contour sont traités comme des opérations de dessin distinctes.
Voir également opacity().
void QPainter::setPen(const QPen &pen)
Définit le stylo du peintre comme étant le stylo donné pen.
Le site 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 pour qu'il ait la valeur style, la largeur 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 comme ayant le style Qt::SolidLine, la largeur 1 et la valeur spécifiée color.
Il s'agit d'une fonction surchargée.
void QPainter::setRenderHint(QPainter::RenderHint hint, bool on = true)
Définit le rendu donné hint sur le peintre si on est vrai ; sinon, efface l'indication de rendu.
Voir aussi setRenderHints(), renderHints(), et Rendering Quality.
void QPainter::setRenderHints(QPainter::RenderHints hints, bool on = true)
Définit le rendu donné hints sur le peintre si on est vrai ; sinon, efface les indications de rendu.
Voir aussi setRenderHint(), renderHints(), et Rendering Quality.
void QPainter::setTransform(const QTransform &transform, bool combine = false)
Définit la matrice de transformation du monde. Si combine est vrai, la matrice spécifiée transform est combinée avec la matrice actuelle ; sinon, elle remplace la matrice actuelle.
Voir aussi transform() et setWorldTransform().
void QPainter::setViewTransformEnabled(bool enable)
Active les transformations de vue si enable est vrai, ou désactive les transformations de vue si enable est faux.
Voir aussi viewTransformEnabled() et Window-Viewport Conversion.
void QPainter::setViewport(const QRect &rectangle)
Fixe le rectangle de visualisation du peintre à la valeur rectangle, et active les transformations de la vue.
Le rectangle de visualisation fait partie de la transformation de la vue. La fenêtre de visualisation spécifie le système de coordonnées du périphérique. Sa sœur, window(), spécifie le système de coordonnées logique.
Le rectangle d'affichage par défaut est le même que celui du périphérique.
Voir également viewport(), viewTransformEnabled() et Window-Viewport Conversion.
void QPainter::setViewport(int x, int y, int width, int height)
Définit le rectangle de visualisation du peintre comme étant le rectangle commençant à (x, y) avec les données width et height.
Il s'agit d'une fonction surchargée.
void QPainter::setWindow(const QRect &rectangle)
Définit la fenêtre du peintre à l'adresse rectangle, et active les transformations de vue.
Le rectangle de la fenêtre fait partie de la transformation de la vue. La fenêtre spécifie le système de coordonnées logique. Sa sœur, viewport(), spécifie le système de coordonnées du périphérique.
Le rectangle de la fenêtre par défaut est le même que celui du périphérique.
Voir également window(), viewTransformEnabled() et Window-Viewport Conversion.
void QPainter::setWindow(int x, int y, int width, int height)
Fixe la fenêtre du peintre au rectangle commençant à (x, y) et aux coordonnées width et height.
Il s'agit d'une fonction surchargée.
void QPainter::setWorldMatrixEnabled(bool enable)
Active les transformations si enable est vrai, ou désactive les transformations si enable est faux. La matrice de transformation du monde n'est pas modifiée.
Voir aussi worldMatrixEnabled(), worldTransform(), et Coordinate Transformations.
void QPainter::setWorldTransform(const QTransform &matrix, bool combine = false)
Définit la matrice de transformation du monde. Si combine est vrai, la matrice spécifiée matrix est combinée avec la matrice actuelle ; sinon, elle remplace la matrice actuelle.
Voir aussi worldTransform(), transform() et setTransform().
void QPainter::shear(qreal sh, qreal sv)
Cisaille le système de coordonnées par (sh, sv).
Voir également setWorldTransform() et Coordinate Transformations.
void QPainter::strokePath(const QPainterPath &path, const QPen &pen)
Dessine le contour (traits) du chemin path avec le 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 aussi renderHints() et setRenderHint().
const QTransform &QPainter::transform() const
Alias de worldTransform(). Renvoie la matrice de transformation du monde.
Voir aussi setTransform() et worldTransform().
void QPainter::translate(const QPointF &offset)
Traduit le système de coordonnées par la valeur donnée offset; c'est-à-dire que la valeur donnée offset est ajoutée aux points.
Voir aussi setWorldTransform() et Coordinate Transformations.
void QPainter::translate(const QPoint &offset)
Traduit le système de coordonnées en fonction de l'adresse offset.
Il s'agit d'une fonction surchargée.
void QPainter::translate(qreal dx, qreal dy)
Traduit le système de coordonnées par le 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 aussi setViewTransformEnabled() et worldTransform().
QRect QPainter::viewport() const
Renvoie le rectangle de la fenêtre de visualisation.
Voir aussi 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 aussi setWorldMatrixEnabled(), worldTransform() et Système de coordonnées.
const QTransform &QPainter::worldTransform() const
Renvoie la matrice de transformation du monde.
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.






















