QPainter Class
Die Klasse „QPainter“ führt Low-Level-Zeichnungsvorgänge an Widgets und anderen Zeichenobjekten durch. Mehr...
| Header: | #include <QPainter> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Gui) target_link_libraries(mytarget PRIVATE Qt6::Gui) |
| qmake: | QT += gui |
| Vererbt an: |
- Liste aller Mitglieder, einschließlich geerbter Mitglieder
- QPainter ist Teil der Malklassen.
Hinweis: Alle Funktionen dieser Klasse sind reentrant.
Öffentliche Typen
| 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 |
Öffentliche Funktionen
| QPainter() | |
| QPainter(QPaintDevice*device) | |
| ~QPainter() | |
| const QBrush & | background() const |
| Qt::BGMode | backgroundMode() const |
| bool | begin(QPaintDevice*device) |
| void | beginNativePainting() |
| QRectF | boundingRect(const QRectF&rectangle, int flags, const QString&text) |
| QRect | boundingRect(const QRect&rectangle, int flags, const QString&text) |
| QRectF | boundingRect(const QRectF&rectangle, const QString&text, const QTextOption&option = QTextOption()) |
| QRect | boundingRect(int x, int y, int w, int h, int flags, const QString&text) |
| const QBrush & | brush() const |
| QPoint | brushOrigin() const |
(since 6.11) QPointF | brushOriginF() const |
| QRectF | clipBoundingRect() const |
| QPainterPath | clipPath() const |
| QRegion | clipRegion() const |
| QTransform | combinedTransform() const |
| QPainter::CompositionMode | compositionMode() const |
| QPaintDevice * | device() const |
| const QTransform & | deviceTransform() const |
| void | drawArc(const QRectF&rectangle, int startAngle, int spanAngle) |
| void | drawArc(const QRect&rectangle, int startAngle, int spanAngle) |
| void | drawArc(int x, int y, int Breite, int Höhe, int Startwinkel, int Spannwinkel) |
| void | drawChord(const QRectF&rectangle, int startAngle, int spanAngle) |
| void | drawChord(const QRect&rectangle, int startAngle, int spanAngle) |
| void | drawChord(int x, int y, int Breite, int Höhe, int Startwinkel, int Spannwinkel) |
| void | drawConvexPolygon(const QPointF*points, int pointCount) |
| void | drawConvexPolygon(const QPolygon&polygon) |
| void | drawConvexPolygon(const QPolygonF&polygon) |
| void | drawConvexPolygon(const QPoint*points, int pointCount) |
| void | drawEllipse(const QRectF&rectangle) |
| void | drawEllipse(const QRect&rectangle) |
| void | drawEllipse(const QPoint¢er, int rx, int ry) |
| void | drawEllipse(const QPointF¢er, qreal rx, qreal ry) |
| void | drawEllipse(int x, int y, int Breite, int Höhe) |
| void | 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 | drawImage(const QRectF&rectangle, const QImage&image) |
| void | drawImage(const QPoint&point, const QImage&image, const QRect&source, Qt::ImageConversionFlags flags = Qt::AutoColor) |
| void | drawImage(const QPointF&point, const QImage&image, const QRectF&source, Qt::ImageConversionFlags flags = Qt::AutoColor) |
| void | drawImage(const QRect&target, const QImage&image, const QRect&source, Qt::ImageConversionFlags flags = Qt::AutoColor) |
| void | drawImage(int x, int y, const QImage&image, int sx = 0, int sy = 0, int sw = -1, int sh = -1, Qt::ImageConversionFlags flags = Qt::AutoColor) |
| void | drawLine(const QLineF&line) |
| void | drawLine(const QLine&line) |
| void | drawLine(const QPoint&p1, const QPoint&p2) |
| void | drawLine(const QPointF&p1, const QPointF&p2) |
| void | drawLine(int x1, int y1, int x2, int y2) |
| void | drawLines(const QLineF*lines, int lineCount) |
| void | drawLines(const QList<QLine>&lines) |
| void | drawLines(const QList<QLineF>&lines) |
| void | drawLines(const QList<QPoint>&pointPairs) |
| void | drawLines(const QList<QPointF>&pointPairs) |
| void | drawLines(const QLine*lines, int lineCount) |
| void | drawLines(const QPoint*pointPairs, int lineCount) |
| void | drawLines(const QPointF*pointPairs, int lineCount) |
| void | drawPath(const QPainterPath&path) |
| void | drawPicture(const QPointF&point, const QPicture&picture) |
| void | drawPicture(const QPoint&point, const QPicture&picture) |
| void | drawPicture(int x, int y, const QPicture&picture) |
| void | drawPie(const QRectF&rectangle, int startAngle, int spanAngle) |
| void | drawPie(const QRect&rectangle, int startAngle, int spanAngle) |
| void | drawPie(int x, int y, int Breite, int Höhe, int Startwinkel, int Spannwinkel) |
| void | drawPixmap(const QRectF&target, const QPixmap&pixmap, const QRectF&source) |
| void | drawPixmap(const QPoint&point, const QPixmap&pixmap) |
| void | drawPixmap(const QPointF&point, const QPixmap&pixmap) |
| void | drawPixmap(const QRect&rectangle, const QPixmap&pixmap) |
| void | drawPixmap(const QPoint&point, const QPixmap&pixmap, const QRect&source) |
| void | drawPixmap(const QPointF&point, const QPixmap&pixmap, const QRectF&source) |
| void | drawPixmap(const QRect&target, const QPixmap&pixmap, const QRect&source) |
| void | drawPixmap(int x, int y, const QPixmap&pixmap) |
| void | drawPixmap(int x, int y, int Breite, int Höhe, const QPixmap&pixmap) |
| void | drawPixmap(int x, int y, const QPixmap&pixmap, int sx, int sy, int sw, int sh) |
| void | drawPixmap(int x, int y, int w, int h, const QPixmap&pixmap, int sx, int sy, int sw, int sh) |
| void | drawPixmapFragments(const QPainter::PixmapFragment*fragments, int fragmentCount, const QPixmap&pixmap, QPainter::PixmapFragmentHints hints = PixmapFragmentHints()) |
| void | drawPoint(const QPointF&position) |
| void | drawPoint(const QPoint&position) |
| void | drawPoint(int x, int y) |
| void | drawPoints(const QPointF*points, int pointCount) |
| void | drawPoints(const QPolygon&points) |
| void | drawPoints(const QPolygonF&points) |
| void | drawPoints(const QPoint*points, int pointCount) |
| void | drawPolygon(const QPointF*points, int pointCount, Qt::FillRule fillRule = Qt::OddEvenFill) |
| void | drawPolygon(const QPolygon&points, Qt::FillRule fillRule = Qt::OddEvenFill) |
| void | drawPolygon(const QPolygonF&points, Qt::FillRule fillRule = Qt::OddEvenFill) |
| void | drawPolygon(const QPoint*points, int pointCount, Qt::FillRule fillRule = Qt::OddEvenFill) |
| void | drawPolyline(const QPointF*points, int pointCount) |
| void | drawPolyline(const QPolygon&points) |
| void | drawPolyline(const QPolygonF&points) |
| void | drawPolyline(const QPoint*points, int pointCount) |
| void | drawRect(const QRectF&rectangle) |
| void | drawRect(const QRect&rectangle) |
| void | drawRect(int x, int y, int Breite, int Höhe) |
| void | drawRects(const QRectF*rectangles, int rectCount) |
| void | drawRects(const QList<QRect>&rectangles) |
| void | drawRects(const QList<QRectF>&rectangles) |
| void | drawRects(const QRect*rectangles, int rectCount) |
| void | drawRoundedRect(const QRectF&rect, qreal xRadius, qreal yRadius, Qt::SizeMode mode = Qt::AbsoluteSize) |
| void | drawRoundedRect(const QRect&rect, qreal xRadius, qreal yRadius, Qt::SizeMode mode = Qt::AbsoluteSize) |
| void | drawRoundedRect(int x, int y, int w, int h, qreal xRadius, qreal yRadius, Qt::SizeMode mode = Qt::AbsoluteSize) |
| void | drawStaticText(const QPointF&topLeftPosition, const QStaticText&staticText) |
| void | drawStaticText(const QPoint&topLeftPosition, const QStaticText&staticText) |
| void | drawStaticText(int left, int top, const QStaticText&staticText) |
| void | drawText(const QPointF&position, const QString&text) |
| void | drawText(const QPoint&position, const QString&text) |
| void | drawText(const QRectF&rectangle, const QString&text, const QTextOption&option = QTextOption()) |
| void | drawText(int x, int y, const QString&text) |
| void | drawText(const QRect&rectangle, int flags, const QString&text, QRect*boundingRect = nullptr) |
| void | drawText(const QRectF&rectangle, int flags, const QString&text, QRectF*boundingRect = nullptr) |
| void | drawText(int x, int y, int width, int height, int flags, const QString&text, QRect*boundingRect = nullptr) |
| void | drawTiledPixmap(const QRectF&rectangle, const QPixmap&pixmap, const QPointF&position = QPointF()) |
| void | drawTiledPixmap(const QRect&rectangle, const QPixmap&pixmap, const QPoint&position = QPoint()) |
| void | drawTiledPixmap(int x, int y, int width, int height, const QPixmap&pixmap, int sx = 0, int sy = 0) |
| bool | end() |
| void | endNativePainting() |
| void | eraseRect(const QRectF&rectangle) |
| void | eraseRect(const QRect&rectangle) |
| void | eraseRect(int x, int y, int Breite, int Höhe) |
| void | fillPath(const QPainterPath&path, const QBrush&brush) |
| void | fillRect(const QRectF&rectangle, const QBrush&brush) |
| void | fillRect(const QRect&rectangle, QGradient::Preset preset) |
| void | fillRect(const QRect&rectangle, Qt::BrushStyle style) |
| void | fillRect(const QRect&rectangle, Qt::GlobalColor color) |
| void | fillRect(const QRect&rectangle, const QBrush&brush) |
| void | fillRect(const QRect&rectangle, const QColor&color) |
| void | fillRect(const QRectF&rectangle, QGradient::Preset preset) |
| void | fillRect(const QRectF&rectangle, Qt::BrushStyle style) |
| void | fillRect(const QRectF&rectangle, Qt::GlobalColor color) |
| void | fillRect(const QRectF&rectangle, const QColor&color) |
| void | fillRect(int x, int y, int width, int height, QGradient::Preset preset) |
| void | fillRect(int x, int y, int Breite, int Höhe, Qt::BrushStyle Stil) |
| void | fillRect(int x, int y, int Breite, int Höhe, Qt::GlobalColor Farbe) |
| void | fillRect(int x, int y, int Breite, int Höhe, const QBrush&Pinsel) |
| void | fillRect(int x, int y, int Breite, int Höhe, const QColor&Farbe) |
| 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 Winkel) |
| 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 Farbe) |
| void | setBrushOrigin(const QPointF&position) |
| void | setBrushOrigin(const QPoint&position) |
| void | setBrushOrigin(int x, int y) |
| void | setClipPath(const QPainterPath&path, Qt::ClipOperation operation = Qt::ReplaceClip) |
| void | setClipRect(const QRectF&rectangle, Qt::ClipOperation operation = Qt::ReplaceClip) |
| void | setClipRect(int x, int y, int width, int height, Qt::ClipOperation operation = Qt::ReplaceClip) |
| void | setClipRect(const QRect&rectangle, Qt::ClipOperation operation = Qt::ReplaceClip) |
| void | setClipRegion(const QRegion®ion, Qt::ClipOperation operation = Qt::ReplaceClip) |
| void | setClipping(bool enable) |
| void | setCompositionMode(QPainter::CompositionMode mode) |
| void | setFont(const QFont&font) |
| void | setLayoutDirection(Qt::LayoutDirection Richtung) |
| void | setOpacity(qreal opacity) |
| void | setPen(const QPen&pen) |
(since 6.11) void | setPen(QPen&&pen) |
| void | setPen(Qt::PenStyle style) |
| void | setPen(const QColor&color) |
| void | setRenderHint(QPainter::RenderHint hint, bool on = true) |
| void | setRenderHints(QPainter::RenderHints hints, bool on = true) |
| void | setTransform(const QTransform&transform, bool combine = false) |
| void | setViewTransformEnabled(bool enable) |
| void | setViewport(const QRect&rectangle) |
| void | setViewport(int x, int y, int Breite, int Höhe) |
| void | setWindow(const QRect&rectangle) |
| void | setWindow(int x, int y, int Breite, int Höhe) |
| void | setWorldMatrixEnabled(bool enable) |
| void | setWorldTransform(const QTransform&matrix, bool combine = false) |
| void | shear(qreal sh, qreal sv) |
| void | strokePath(const QPainterPath&path, const QPen&pen) |
| bool | testRenderHint(QPainter::RenderHint hint) const |
| const QTransform & | transform() const |
| void | translate(const QPointF&offset) |
| void | translate(const QPoint&offset) |
| void | translate(qreal dx, qreal dy) |
| bool | viewTransformEnabled() const |
| QRect | viewport() const |
| QRect | window() const |
| bool | worldMatrixEnabled() const |
| const QTransform & | worldTransform() const |
Ausführliche Beschreibung
QPainter bietet hochoptimierte Funktionen für die meisten Zeichenvorgänge, die in GUI-Programmen benötigt werden. Es kann alles zeichnen, von einfachen Linien bis hin zu komplexen Formen wie Kreisen und Sehnen. Außerdem kann es ausgerichteten Text und Pixmaps zeichnen. Normalerweise zeichnet es in einem „natürlichen“ Koordinatensystem, kann aber auch Ansichts- und Welttransformationen durchführen. QPainter kann auf jedes Objekt angewendet werden, das die Klasse „ QPaintDevice “ erbt.
QPainter wird üblicherweise im „paint“-Ereignis eines Widgets verwendet: Erstellen und passen Sie den Painter an (z. B. durch Festlegen des Stifts oder Pinsels). Zeichnen Sie anschließend. Denken Sie daran, das QPainter-Objekt nach dem Zeichnen zu löschen. Beispiel:
void SimpleExampleWidget::paintEvent(QPaintEvent *)
{
QPainter painter(this);
painter.setPen(Qt::blue);
painter.setFont(QFont("Arial", 30));
painter.drawText(rect(), Qt::AlignCenter, "Qt");
}Die Kernfunktionalität von QPainter ist das Zeichnen, doch die Klasse bietet auch mehrere Funktionen, mit denen Sie die Einstellungen und die Darstellungsqualität von QPainter anpassen können, sowie weitere Funktionen, die das Clipping ermöglichen. Darüber hinaus können Sie durch die Angabe des Kompositionsmodus des Painters steuern, wie verschiedene Formen miteinander verschmolzen werden.
Die Funktion ` isActive()` gibt an, ob der Painter aktiv ist. Ein Painter wird durch die Funktion ` begin()` und den Konstruktor, der ein ` QPaintDevice `-Argument entgegennimmt, aktiviert. Die Funktion ` end()` sowie der Destruktor deaktivieren ihn.
Zusammen mit den Klassen ` QPaintDevice ` und ` QPaintEngine ` bildet `QPainter` die Grundlage für das Zeichensystem von Qt. `QPainter` ist die Klasse, die zur Durchführung von Zeichenoperationen verwendet wird. ` QPaintDevice ` repräsentiert ein Gerät, auf das mit einem `QPainter` gezeichnet werden kann. ` QPaintEngine ` stellt die Schnittstelle bereit, über die der Painter auf verschiedene Arten von Geräten zeichnet. Ist der Painter aktiv, gibt device() das Zeichen-Gerät zurück, auf dem der Painter zeichnet, und paintEngine() gibt die Zeichen-Engine zurück, auf der der Painter gerade arbeitet. Weitere Informationen finden Sie im Abschnitt „Zeichensystem“.
Manchmal ist es wünschenswert, dass jemand anderes auf einem ungewöhnlichen „ QPaintDevice “ malt. QPainter unterstützt hierfür eine statische Funktion: setRedirected().
Warnung: Wenn das „paintdevice“ ein Widget ist, kann QPainter nur innerhalb einer `paintEvent()`-Funktion oder in einer von `paintEvent()` aufgerufenen Funktion verwendet werden.
Einstellungen
Es gibt verschiedene Einstellungen, die Sie anpassen können, damit QPainter nach Ihren Wünschen zeichnet:
- font() ist die Schriftart, die zum Zeichnen von Text verwendet wird. Wenn der Painter- isActive(), können Sie Informationen über die aktuell eingestellte Schriftart und deren Metriken mithilfe der Funktionen „ fontInfo “ () bzw. „ fontMetrics “ () abrufen.
- brush() definiert die Farbe oder das Muster, die bzw. das zum Ausfüllen von Formen verwendet wird.
- pen() definiert die Farbe oder das Punktmuster, das zum Zeichnen von Linien oder Begrenzungen verwendet wird.
- backgroundMode() legt fest, ob ein „ background “ () vorhanden ist oder nicht, d. h., es ist entweder „ Qt::OpaqueMode “ oder „ Qt::TransparentMode “.
- background() gilt nur, wenn „ backgroundMode “ () auf „ Qt::OpaqueMode “ gesetzt ist und „ pen “ () ein Punktmuster ist. In diesem Fall beschreibt es die Farbe der Hintergrundpixel im Punktmuster.
- brushOrigin() definiert den Ursprung der gekachelten Pinsel, normalerweise den Ursprung des Widget-Hintergrunds.
- viewport(), ` window()`, ` worldTransform()` bilden das Koordinatentransformationssystem des Painters. Weitere Informationen finden Sie im Abschnitt „ Coordinate Transformations “ und in der Dokumentation zum Koordinatensystem.
- hasClipping() gibt an, ob der Painter überhaupt einen Ausschnitt vornimmt. (Das Malgerät nimmt ebenfalls einen Ausschnitt vor.) Wenn der Painter einen Ausschnitt vornimmt, erfolgt dieser gemäß clipRegion().
- layoutDirection() definiert die vom Painter beim Zeichnen von Text verwendete Layout-Richtung.
- worldMatrixEnabled() gibt an, ob die Welttransformation aktiviert ist.
- viewTransformEnabled() gibt an, ob die Ansichtstransformation aktiviert ist.
Beachten Sie, dass einige dieser Einstellungen die Einstellungen in bestimmten Malgeräten widerspiegeln, z. B. QWidget::font(). Die Funktion QPainter::begin() (oder entsprechend der QPainter-Konstruktor) kopiert diese Attribute aus dem Malgerät.
Sie können den Zustand des QPainter jederzeit speichern, indem Sie die Funktion ` save()` aufrufen, die alle verfügbaren Einstellungen auf einem internen Stack speichert. Die Funktion ` restore()` ruft diese wieder ab.
Zeichnen
QPainter stellt Funktionen zum Zeichnen der meisten Primitive bereit: ` drawPoint()`, ` drawPoints()`, ` drawLine()`, ` drawRect()`, ` drawRoundedRect()`, ` drawEllipse()`, ` drawArc()`, ` drawPie()`, ` drawChord()`, ` drawPolyline()`, ` drawPolygon()`, ` drawConvexPolygon()` und `drawCubicBezier()`. Die beiden Hilfsfunktionen „ drawRects()“ und „ drawLines()“ zeichnen die angegebene Anzahl von Rechtecken oder Linien aus dem angegebenen Array von „ QRects “ oder „ QLines “ mit dem aktuellen Stift und Pinsel.
Die Klasse `QPainter` stellt außerdem die Funktion ` fillRect()` zur Verfügung, die das angegebene ` QRect` mit der angegebenen ` QBrush` füllt, sowie die Funktion ` eraseRect()`, die den Bereich innerhalb des angegebenen Rechtecks löscht.
Alle diese Funktionen verfügen sowohl über Integer- als auch über Gleitkomma-Versionen.
![]() | Beispiel für grundlegende Zeichnungen Das Beispiel „Grundlegendes Zeichnen“ zeigt, wie man mit der Klasse `QPainter` grundlegende Grafikprimitive in verschiedenen Stilen darstellen kann. |
Wenn Sie eine komplexe Form zeichnen müssen, insbesondere wenn dies wiederholt erfolgen soll, sollten Sie in Erwägung ziehen, eine „ QPainterPath “ zu erstellen und diese mit „ drawPath()“ zu zeichnen.
| Beispiel „Painter-Pfade“ Die Klasse „ QPainterPath “ bietet einen Container für Zeichenvorgänge, wodurch grafische Formen erstellt und wiederverwendet werden können. Das Beispiel „Painter Paths “ zeigt, wie Painter-Pfade zum Erstellen komplexer Formen für die Darstellung verwendet werden können. | ![]() |
QPainter stellt außerdem die Funktion ` fillPath()` bereit, die den angegebenen Pfad ` QPainterPath ` mit der angegebenen Füllfarbe ` QBrush` füllt, sowie die Funktion ` strokePath()`, die den Umriss des angegebenen Pfades zeichnet (d. h. den Pfad umrandet).
Siehe auch das Beispiel „Vektorverformung“, das zeigt, wie man mit fortgeschrittenen Vektortechniken Text mithilfe eines „ QPainterPath “ zeichnet, das Beispiel „Farbverläufe“, das die verschiedenen in Qt verfügbaren Farbverlaufstypen veranschaulicht, sowie das Beispiel „Pfad konturieren“, das die in Qt integrierten Strichmuster vorstellt und zeigt, wie benutzerdefinierte Muster verwendet werden können, um die Auswahl an verfügbaren Mustern zu erweitern.
Das Zeichnen von Text erfolgt mithilfe von ` drawText()`. Wenn Sie eine fein abgestimmte Positionierung benötigen, gibt Ihnen ` boundingRect()` Auskunft darüber, wo ein bestimmter ` drawText()`-Befehl zeichnen wird.
Zeichnen von Pixmaps und Bildern
Es gibt Funktionen zum Zeichnen von Pixmaps/Bildern, nämlich drawPixmap(), drawImage() und drawTiledPixmap(). Sowohl drawPixmap() als auch drawImage() liefern das gleiche Ergebnis, mit dem Unterschied, dass drawPixmap() auf dem Bildschirm schneller ist, während drawImage() auf einem QPrinter oder anderen Geräten möglicherweise schneller ist.
Es gibt eine Funktion „ drawPicture()“, die den Inhalt eines gesamten „ QPicture “ zeichnet. Die Funktion „ drawPicture()“ ist die einzige Funktion, die alle Einstellungen des „Painter“ ignoriert, da „ QPicture “ über eigene Einstellungen verfügt.
Zeichnen von hochauflösenden Versionen von Pixmaps und Bildern
Hochauflösende Versionen von Pixmaps haben einen Wert für das Gerätepixelverhältnis, der größer als 1 ist (siehe QImageReader, QPixmap::devicePixelRatio()). Sollte dieser Wert mit dem Wert des zugrunde liegenden QPaintDevice übereinstimmen, wird die Pixmap ohne zusätzliche Transformation direkt auf das Gerät gezeichnet.
Dies ist beispielsweise der Fall, wenn ein „ QPixmap “ mit einer Größe von 64x64 Pixeln und einem Gerätepixelverhältnis von 2 auf einen Bildschirm mit hoher DPI-Auflösung gezeichnet wird, der ebenfalls ein Gerätepixelverhältnis von 2 aufweist. Beachten Sie, dass die Pixmap im Benutzerraum dann effektiv 32x32 Pixel groß ist. Codepfade in Qt, die die Layout-Geometrie auf Basis der Pixmap-Größe berechnen, verwenden diese Größe. Dies hat letztlich zur Folge, dass die Pixmap als Pixmap mit hoher DPI-Auflösung und nicht als große Pixmap angezeigt wird.
Rendering-Qualität
Um mit QPainter ein optimales Rendering-Ergebnis zu erzielen, sollten Sie die plattformunabhängige „ QImage “ als Zeichenvorrichtung verwenden; d. h. die Verwendung von „ QImage “ stellt sicher, dass das Ergebnis auf jeder Plattform eine identische Pixeldarstellung aufweist.
Die QPainter-Klasse bietet zudem die Möglichkeit, die Darstellungsqualität über die Enumeration „ RenderHint “ und die Unterstützung von Gleitkommagenauigkeit zu steuern: Alle Funktionen zum Zeichnen von Primitiven verfügen über Gleitkomma-Versionen.
painter.drawEllipse(QRectF(-diameter / 2.0, -diameter / 2.0, diameter, diameter));Diese werden häufig in Kombination mit dem Render-Hinweis „ QPainter::Antialiasing “ verwendet.
| Vergleich konzentrischer Kreise mit „int“ und „float“ sowie mit und ohne Anti-Aliasing. Bei Verwendung der Versionen mit Gleitkommagenauigkeit entstehen gleichmäßig beabstandete Ringe. Anti-Aliasing führt zu glatten Kreisen. | ![]() |
Die Enumeration „ RenderHint “ legt Flags für „QPainter“ fest, die von einer bestimmten Engine berücksichtigt werden können oder auch nicht. „ QPainter::Antialiasing “ gibt an, dass die Engine Kanten von Primitiven nach Möglichkeit glätten soll, „ QPainter::TextAntialiasing “ gibt an, dass die Engine Text nach Möglichkeit glätten soll, und „ QPainter::SmoothPixmapTransform “ gibt an, dass die Engine einen Algorithmus zur glatten Pixmap-Transformation verwenden soll.
Die Funktion ` renderHints()` gibt ein Flag zurück, das die für diesen Painter festgelegten Rendering-Hinweise angibt. Verwenden Sie die Funktion ` setRenderHint()`, um die aktuell festgelegten ` RenderHints` zu setzen oder zu löschen.
Koordinatentransformationen
Normalerweise arbeitet der QPainter im geräteeigenen Koordinatensystem (in der Regel Pixel), aber QPainter bietet eine gute Unterstützung für Koordinatentransformationen.
Die am häufigsten verwendeten Transformationen sind Skalierung, Drehung, Verschiebung und Scherung. Verwenden Sie die Funktion „ scale “ (), um das Koordinatensystem um einen bestimmten Versatz zu skalieren, die Funktion „ rotate “ (), um es im Uhrzeigersinn zu drehen, und „ translate “ (), um es zu verschieben (d. h. den Punkten einen bestimmten Versatz hinzuzufügen). Sie können das Koordinatensystem außerdem mit der Funktion „ shear “ () um den Ursprung verdrehen. Eine Visualisierung eines verschobenen Koordinatensystems finden Sie im Beispiel „Affine Transformationen “.
Siehe auch das Beispiel „Transformationen“, das zeigt, wie Transformationen die Art und Weise beeinflussen, wie QPainter Grafikprimitive rendert. Insbesondere wird dort gezeigt, wie sich die Reihenfolge der Transformationen auf das Ergebnis auswirkt.
| Beispiel „Affine Transformationen“ Das Beispiel „Affine Transformationen“ veranschaulicht die Fähigkeit von Qt, affine Transformationen bei Zeichenvorgängen durchzuführen. Die Demo ermöglicht es dem Benutzer zudem, mit den Transformationsoperationen zu experimentieren und die Ergebnisse sofort zu sehen. | ![]() |
Alle Transformationsoperationen werden auf der Transformations worldTransform() angewendet. Eine Matrix transformiert einen Punkt in der Ebene in einen anderen Punkt. Weitere Informationen zur Transformationsmatrix finden Sie in der Dokumentation zu „Koordinatensystem“ und „ QTransform “.
Die Funktion ` setWorldTransform()` kann die aktuell festgelegte ` worldTransform()` ersetzen oder ergänzen. Die Funktion ` resetTransform()` setzt alle Transformationen zurück, die mit den Funktionen ` translate()`, ` scale()`, ` shear()`, ` rotate()`, ` setWorldTransform()`, ` setViewport()` und ` setWindow()` vorgenommen wurden. Die Funktion ` deviceTransform()` gibt die Matrix zurück, die von logischen Koordinaten in Gerätekordinaten des plattformabhängigen Zeichen-Geräts transformiert. Letztere Funktion wird nur benötigt, wenn plattformabhängige Zeichenbefehle auf dem plattformabhängigen Handle verwendet werden und die Plattform keine Transformationen nativ durchführt.
Beim Zeichnen mit QPainter geben wir Punkte anhand logischer Koordinaten an, die dann in die physikalischen Koordinaten des Zeichen-Geräts umgewandelt werden. Die Zuordnung der logischen Koordinaten zu den physikalischen Koordinaten wird von der Funktion ` combinedTransform()` von QPainter übernommen, einer Kombination aus ` viewport()`, ` window()` und ` worldTransform()`. Die Funktion ` viewport()` stellt die physikalischen Koordinaten dar, die ein beliebiges Rechteck spezifizieren, die Funktion ` window()` beschreibt dasselbe Rechteck in logischen Koordinaten, und die Funktion ` worldTransform()` ist identisch mit der Transformationsmatrix.
Siehe auch Koordinatensystem
Clipping
QPainter kann jeden Zeichenvorgang auf ein Rechteck, einen Bereich oder einen Vektorpfad beschneiden. Der aktuelle Ausschnitt ist über die Funktionen „ clipRegion()“ und „ clipPath()“ verfügbar. Ob Pfade oder Bereiche bevorzugt (schneller) sind, hängt von der zugrunde liegenden „ paintEngine()“ ab. Beispielsweise bevorzugt die „ QImage “-Zeichen-Engine Pfade, während die X11-Zeichen-Engine Bereiche bevorzugt. Die Festlegung eines Ausschnitts erfolgt in den logischen Koordinaten des Painters.
Nach dem Clipping durch den QPainter kann auch das Zeichengerät ein Clipping vornehmen. Beispielsweise schneiden die meisten Widgets die von untergeordneten Widgets verwendeten Pixel ab, und die meisten Drucker schneiden einen Bereich nahe den Papierrändern ab. Dieses zusätzliche Clipping wird durch den Rückgabewert von ` clipRegion()` oder ` hasClipping()` nicht berücksichtigt.
Kompositionsmodi
QPainter stellt die Enumeration ` CompositionMode ` zur Verfügung, die die Porter-Duff-Regeln für die digitale Bildkomposition definiert; sie beschreibt ein Modell zur Kombination der Pixel eines Bildes (der Quelle) mit den Pixeln eines anderen Bildes (des Ziels).
Die beiden gängigsten Formen der Bildzusammenstellung sind „ Source “ und „ SourceOver “. „ Source “ wird verwendet, um undurchsichtige Objekte auf ein Zeichenobjekt zu zeichnen. In diesem Modus ersetzt jedes Pixel der Quelle das entsprechende Pixel des Ziels. Im Kompositionsmodus „ SourceOver “ ist das Quellobjekt transparent und wird über das Zielobjekt gezeichnet.
Beachten Sie, dass die Kompositionstransformation pixelweise erfolgt. Aus diesem Grund besteht ein Unterschied zwischen der Verwendung der Grafikprimitive selbst und ihres Begrenzungsrechtecks: Das Begrenzungsrechteck enthält Pixel mit alpha == 0 (d. h. die die Primitive umgebenden Pixel). Diese Pixel überschreiben die Pixel des anderen Bildes und löschen diese damit effektiv, während die Primitive nur ihren eigenen Bereich überschreibt.
![]() | Beispiel für Kompositionsmodi Das Beispiel „Composition Modes“, das im Beispielverzeichnis von Qt verfügbar ist, ermöglicht es Ihnen, mit den verschiedenen Kompositionsmodi zu experimentieren und die Ergebnisse sofort zu sehen. |
Einschränkungen
Wenn Sie Koordinaten mit der rasterbasierten Zeichen-Engine von Qt verwenden, sollten Sie beachten, dass zwar Koordinaten größer als +/-215 verwendet werden können, die Darstellung von Zeichnungen mit Koordinaten außerhalb dieses Bereichs jedoch nicht garantiert ist; die Zeichnung kann abgeschnitten werden. Dies ist auf die Verwendung von „ short int “ in der Implementierung zurückzuführen.
Die vom Qt-Stroker erzeugten Konturen stellen bei gekrümmten Formen lediglich eine Annäherung dar. In den meisten Fällen ist es unmöglich, die Kontur eines Bézier-Kurvensegments mithilfe eines anderen Bézier-Kurvensegments darzustellen; daher approximiert Qt die Kurvenkonturen durch die Verwendung mehrerer kleinerer Kurven. Aus Leistungsgründen ist die Anzahl der Kurven, die Qt für diese Konturen verwendet, begrenzt; daher nimmt der Konturfehler bei großen Stiftbreiten oder Vergrößerungen zu. Um Konturen mit geringeren Fehlern zu erzeugen, kann die Klasse ` QPainterPathStroker ` verwendet werden, die über die Memberfunktion `setCurveThreshold` verfügt, mit der der Benutzer die Fehlertoleranz festlegen kann. Eine weitere Abhilfe besteht darin, die Pfade zunächst in Polygone umzuwandeln und anschließend die Polygone zu zeichnen.
Ebenso approximiert Qt Bögen und Ellipsen mit kubischen Bézier-Kurven, anstatt sie trigonometrisch zu berechnen, sodass Punkte auf einem Bogen leicht von ihren tatsächlichen Positionen abweichen. In diesem Zusammenhang sind die Winkel, die „ drawArc()“, „ drawPie()“ und „ drawChord()“ verwenden, exzentrische Winkel: Sie messen die Richtung vom Mittelpunkt des Begrenzungsrechtecks aus nur dann, wenn dieses Rechteck quadratisch ist. Siehe Arcs and Ellipses für Details zu beiden Punkten.
Leistung
QPainter ist ein umfangreiches Framework, das Entwicklern eine Vielzahl grafischer Operationen ermöglicht, wie z. B. Farbverläufe, Kompositionsmodi und Vektorgrafiken. Und QPainter kann dies über eine Vielzahl unterschiedlicher Hardware- und Software-Stacks hinweg. Natürlich hat die zugrunde liegende Kombination aus Hardware und Software Auswirkungen auf die Leistung, und sicherzustellen, dass jede einzelne Operation in Kombination mit all den verschiedenen Kombinationen aus Kompositionsmodi, Pinseln, Clipping, Transformationen usw. schnell ist, grenzt aufgrund der Vielzahl an Permutationen an eine unmögliche Aufgabe. Als Kompromiss haben wir eine Teilmenge der QPainter-API und der Backends ausgewählt, bei der die Leistung so gut ist, wie wir sie für die jeweilige Kombination aus Hardware und Software vernünftigerweise erreichen können.
Die Backends, auf die wir uns als Hochleistungs-Engines konzentrieren, sind:
- Raster – Dieses Backend implementiert das gesamte Rendering rein softwaremäßig und wird immer zum Rendern in QImages verwendet. Für optimale Leistung sollten nur die Formattypen QImage::Format_ARGB32_Premultiplied, QImage::Format_RGB32 oder QImage::Format_RGB16 verwendet werden. Alle anderen Formate, einschließlich QImage::Format_ARGB32, weisen eine deutlich schlechtere Leistung auf. Diese Engine wird standardmäßig für QWidget und QPixmap verwendet.
- OpenGL 2.0 (ES) – Dieses Backend ist das primäre Backend für hardwarebeschleunigte Grafik. Es kann auf Desktop-Computern und eingebetteten Geräten ausgeführt werden, die die OpenGL 2.0- oder OpenGL/ES 2.0-Spezifikation unterstützen. Dazu gehören die meisten Grafikchips, die in den letzten Jahren hergestellt wurden. Die Engine kann aktiviert werden, indem QPainter auf ein „ QOpenGLWidget “ angewendet wird.
Diese Operationen sind:
- Einfache Transformationen, d. h. Verschiebung und Skalierung sowie Drehungen um 0, 90, 180 und 270 Grad.
drawPixmap()in Kombination mit einfachen Transformationen und Deckkraft im nicht-glatten Transformationsmodus (QPainter::SmoothPixmapTransformist nicht als Render-Hinweis aktiviert).- Rechteckfüllungen mit Volltonfarben, zweifarbigen linearen Farbverläufen und einfachen Transformationen.
- Rechteckiges Clipping mit einfachen Transformationen und Schnitt-Clip.
- Kompositionsmodi „
QPainter::CompositionMode_Source“ und „ QPainter::CompositionMode_SourceOver “. - Abgerundete Rechtecke, gefüllt mit Volltonfarben und zweifarbigen linearen Farbverläufen.
- 3x3-Patch-Pixmaps über „ qDrawBorderPixmap “.
Diese Liste gibt einen Anhaltspunkt dafür, welche Funktionen in einer Anwendung, bei der die Leistung entscheidend ist, sicher verwendet werden können. Bei bestimmten Konfigurationen können auch andere Operationen schnell sein, doch bevor man sie in großem Umfang einsetzt, empfiehlt es sich, sie auf dem System, auf dem die Software letztendlich laufen wird, zu benchmarken und zu überprüfen. Es gibt auch Fälle, in denen rechenintensive Operationen zulässig sind, beispielsweise wenn das Ergebnis in einem QPixmap zwischengespeichert wird.
Siehe auch „ QPaintDevice “, „ QPaintEngine “, Qt SVG, „Einfaches Zeichenbeispiel“ und „ Drawing Utility Functions “.
Dokumentation zu Mitgliedstypen
enum QPainter::CompositionMode
Definiert die unterstützten Modi für die digitale Bildkomposition. Kompositionsmodi dienen dazu, festzulegen, wie die Pixel eines Bildes (der Quelle) mit den Pixeln eines anderen Bildes (des Ziels) zusammengeführt werden.
Bitte beachten Sie, dass die bitweisen Rasteroperationsmodi, die mit dem Präfix „RasterOp“ gekennzeichnet sind, nur in den X11- und Raster-Paint-Engines nativ unterstützt werden. Das bedeutet, dass diese Modi auf dem Mac nur über eine „ QImage “ genutzt werden können. Die mit „RasterOp“ gekennzeichneten Mischmodi werden für Stifte und Pinsel mit Alpha-Komponenten nicht unterstützt. Außerdem werden die RasterOp-Modi durch das Aktivieren des Render-Hinweises „ QPainter::Antialiasing “ effektiv deaktiviert.


Der gängigste Modus ist „SourceOver“ (oft einfach als „Alpha-Blending“ bezeichnet), bei dem das Quellpixel so über das Zielpixel gelegt wird, dass die Alpha-Komponente der Quelle die Transparenz des Pixels bestimmt.
Mehrere Kompositionsmodi erfordern einen Alphakanal im Quell- oder Zielbild, um eine Wirkung zu erzielen. Für optimale Leistung wird das Bildformat „ Format_ARGB32_Premultiplied “ bevorzugt.
Wenn ein Kompositionsmodus festgelegt ist, gilt dieser für alle Maloperatoren, Stifte, Pinsel, Farbverläufe und das Zeichnen mit Pixmaps/Bildern.
| Konstante | Wert | Beschreibung |
|---|---|---|
QPainter::CompositionMode_SourceOver | 0 | Dies ist der Standardmodus. Der Alpha-Wert der Quelle wird verwendet, um das Pixel mit dem Zielbild zu überblenden. |
QPainter::CompositionMode_DestinationOver | 1 | Der Alpha-Wert des Ziels wird verwendet, um es über die Pixel der Quelle zu mischen. Dieser Modus ist das Gegenteil von „CompositionMode_SourceOver“. |
QPainter::CompositionMode_Clear | 2 | Die Pixel im Zielbild werden unabhängig von der Quelle gelöscht (auf vollständige Transparenz gesetzt). |
QPainter::CompositionMode_Source | 3 | Die Ausgabe ist das Quellpixel. (Dies entspricht einem einfachen Kopiervorgang und ist identisch mit „SourceOver“, wenn das Quellpixel undurchsichtig ist.) |
QPainter::CompositionMode_Destination | 4 | Das Ergebnis ist das Zielpixel. Das bedeutet, dass die Überblendung keine Auswirkung hat. Dieser Modus ist das Gegenteil von „CompositionMode_Source“. |
QPainter::CompositionMode_SourceIn | 5 | Die Ausgabe ist das Quellpixel, wobei der Alpha-Wert um den des Zielpixels reduziert wird. |
QPainter::CompositionMode_DestinationIn | 6 | Das Ergebnis ist das Zielpixel, wobei der Alpha-Wert um den des Quellpixels reduziert wird. Dieser Modus ist das Gegenteil von „CompositionMode_SourceIn“. |
QPainter::CompositionMode_SourceOut | 7 | Die Ausgabe ist die Quelle, wobei der Alpha-Wert um den Kehrwert des Ziels reduziert wird. |
QPainter::CompositionMode_DestinationOut | 8 | Das Ergebnis ist das Zielpixel, wobei der Alpha-Wert um den Kehrwert des Quellpixels reduziert wird. Dieser Modus ist das Gegenteil von „CompositionMode_SourceOut“. |
QPainter::CompositionMode_SourceAtop | 9 | Das Quellpixel wird über das Zielpixel gelegt, wobei der Alpha-Wert des Quellpixels um den Alpha-Wert des Zielpixels reduziert wird. |
QPainter::CompositionMode_DestinationAtop | 10 | Das Zielpixel wird über die Quelle gelegt, wobei der Alpha-Wert des Zielpixels um den Alpha-Wert des Zielpixels reduziert wird. Dieser Modus ist das Gegenteil von „CompositionMode_SourceAtop“. |
QPainter::CompositionMode_Xor | 11 | Die Quelle, deren Alpha-Wert um den Kehrwert des Ziel-Alpha-Werts reduziert wird, wird mit dem Ziel verschmolzen, dessen Alpha-Wert um den Kehrwert des Quell-Alpha-Werts reduziert wird. CompositionMode_Xor ist nicht dasselbe wie die bitweise XOR-Operation. |
QPainter::CompositionMode_Plus | 12 | Sowohl der Alpha-Wert als auch die Farbe der Quell- und Zielpixel werden addiert. |
QPainter::CompositionMode_Multiply | 13 | Das Ergebnis ist die Quellfarbe, multipliziert mit der Zielfarbe. Die Multiplikation einer Farbe mit Weiß lässt die Farbe unverändert, während die Multiplikation einer Farbe mit Schwarz Schwarz ergibt. |
QPainter::CompositionMode_Screen | 14 | Die Quell- und Zielfarben werden invertiert und anschließend multipliziert. Das Rastern einer Farbe mit Weiß ergibt Weiß, während das Rastern einer Farbe mit Schwarz die Farbe unverändert lässt. |
QPainter::CompositionMode_Overlay | 15 | Multipliziert oder rastert die Farben je nach Zielfarbe. Die Zielfarbe wird mit der Quellfarbe gemischt, um die Helligkeit oder Dunkelheit der Zielfarbe widerzuspiegeln. |
QPainter::CompositionMode_Darken | 16 | Die dunklere der Ausgangs- und Zielfarben wird ausgewählt. |
QPainter::CompositionMode_Lighten | 17 | Die hellere der Ausgangs- und Zielfarben wird ausgewählt. |
QPainter::CompositionMode_ColorDodge | 18 | Die Zielfarbe wird aufgehellt, um die Quellfarbe widerzuspiegeln. Eine schwarze Quellfarbe lässt die Zielfarbe unverändert. |
QPainter::CompositionMode_ColorBurn | 19 | Die Zielfarbe wird abgedunkelt, um die Quellfarbe widerzuspiegeln. Eine weiße Quellfarbe lässt die Zielfarbe unverändert. |
QPainter::CompositionMode_HardLight | 20 | Multipliziert oder rastert die Farben je nach Quellfarbe. Eine helle Quellfarbe hellt die Zielfarbe auf, während eine dunkle Quellfarbe die Zielfarbe abdunkelt. |
QPainter::CompositionMode_SoftLight | 21 | Verdunkelt oder hellt die Farben je nach Quellfarbe auf. Ähnlich wie bei „CompositionMode_HardLight“. |
QPainter::CompositionMode_Difference | 22 | Zieht die dunklere der beiden Farben von der helleren ab. Beim Malen mit Weiß wird die Zielfarbe invertiert, während das Malen mit Schwarz die Zielfarbe unverändert lässt. |
QPainter::CompositionMode_Exclusion | 23 | Ähnlich wie „CompositionMode_Difference“, jedoch mit geringerem Kontrast. Das Malen mit Weiß kehrt die Zielfarbe um, während das Malen mit Schwarz die Zielfarbe unverändert lässt. |
QPainter::RasterOp_SourceOrDestination | 24 | Führt eine bitweise ODER-Operation auf die Quell- und Zielpixel durch (src OR dst). |
QPainter::RasterOp_SourceAndDestination | 25 | Führt eine bitweise UND-Operation zwischen den Quell- und Zielpixeln durch (src AND dst). |
QPainter::RasterOp_SourceXorDestination | 26 | Führt eine bitweise XOR-Operation auf die Quell- und Zielpixel durch (src XOR dst). |
QPainter::RasterOp_NotSourceAndNotDestination | 27 | Führt eine bitweise NOR-Operation auf den Quell- und Zielpixeln durch ((NOT src) AND (NOT dst)). |
QPainter::RasterOp_NotSourceOrNotDestination | 28 | Führt eine bitweise NAND-Operation auf den Quell- und Zielpixeln durch ((NOT src) OR (NOT dst)). |
QPainter::RasterOp_NotSourceXorDestination | 29 | Führt eine bitweise Operation durch, bei der die Quellpixel invertiert und anschließend mit dem Zielpixel XOR-verknüpft werden ((NOT src) XOR dst). |
QPainter::RasterOp_NotSource | 30 | Führt eine bitweise Operation durch, bei der die Quellpixel invertiert werden (NOT src). |
QPainter::RasterOp_NotSourceAndDestination | 31 | Führt eine bitweise Operation durch, bei der die Quelle invertiert und anschließend mit dem Ziel verANDet wird ((NOT src) AND dst). |
QPainter::RasterOp_SourceAndNotDestination | 32 | Führt eine bitweise Operation durch, bei der die Quelle mit den invertierten Zielpixeln mit „AND“ verknüpft wird (src AND (NOT dst)). |
QPainter::RasterOp_NotSourceOrDestination | 33 | Führt eine bitweise Operation durch, bei der die Quelle invertiert und anschließend mit dem Ziel OR-verknüpft wird ((NOT src) OR dst). |
QPainter::RasterOp_ClearDestination | 35 | Die Pixel im Ziel werden unabhängig von der Quelle gelöscht (auf 0 gesetzt). |
QPainter::RasterOp_SetDestination | 36 | Die Pixel im Ziel werden unabhängig von der Quelle gesetzt (auf 1 gesetzt). |
QPainter::RasterOp_NotDestination | 37 | Führt eine bitweise Operation durch, bei der die Zielpixel invertiert werden (NOT dst). |
QPainter::RasterOp_SourceOrNotDestination | 34 | Führt eine bitweise Operation durch, bei der die Quelle mit den invertierten Zielpixeln „ODER“-verknüpft wird (src OR (NOT dst)). |
Siehe auch „ compositionMode()“, „ setCompositionMode()“, „ Composition Modes “ und „Beispiel zur Bildkomposition“.
enum QPainter::PixmapFragmentHint
flags QPainter::PixmapFragmentHints
| Konstante | Wert | Beschreibung |
|---|---|---|
QPainter::OpaqueHint | 0x01 | Gibt an, dass die zu zeichnenden Pixmap-Fragmente undurchsichtig sind. Undurchsichtige Fragmente lassen sich möglicherweise schneller zeichnen. |
Der Typ „PixmapFragmentHints“ ist eine Typdefinition für „QFlags<PixmapFragmentHint>“. Er speichert eine ODER-Kombination von „PixmapFragmentHint“-Werten.
Siehe auch „ QPainter::drawPixmapFragments()“ und „ QPainter::PixmapFragment “.
enum QPainter::RenderHint
flags QPainter::RenderHints
Renderhints dienen dazu, Flags für „ QPainter “ anzugeben, die von einer bestimmten Engine berücksichtigt werden können oder auch nicht.
| Konstante | Wert | Beschreibung |
|---|---|---|
QPainter::Antialiasing | 0x01 | Gibt an, dass die Engine Kanten von Primitiven nach Möglichkeit glätten soll. |
QPainter::TextAntialiasing | 0x02 | Gibt an, dass die Engine Text nach Möglichkeit mit Antialiasing versehen soll. Um das Antialiasing für Text zwangsweise zu deaktivieren, verwenden Sie diesen Hinweis nicht. Setzen Sie stattdessen „ QFont::NoAntialias “ in der Stilstrategie Ihrer Schriftart. |
QPainter::SmoothPixmapTransform | 0x04 | Gibt an, dass die Engine einen Algorithmus zur glatten Pixmap-Transformation (z. B. bilinear) anstelle der „Nearest-Neighbor“-Methode verwenden soll. |
QPainter::VerticalSubpixelPositioning | 0x08 | Erlaubt die Positionierung von Text sowohl vertikal als auch horizontal in Pixelbruchteilen, sofern dies von der Schriftart-Engine unterstützt wird. Dies wird derzeit von Freetype auf allen Plattformen unterstützt, wenn die Hinting-Einstellung auf „ QFont::PreferNoHinting “ gesetzt ist, sowie unter macOS. In den meisten Anwendungsfällen führt dies zu keiner Verbesserung der visuellen Qualität, kann jedoch den Speicherverbrauch erhöhen und die Leistung bei der Textdarstellung etwas beeinträchtigen. Daher wird die Aktivierung dieser Option nicht empfohlen, es sei denn, der Anwendungsfall erfordert dies. Ein solcher Anwendungsfall könnte das Ausrichten von Glyphen an anderen visuellen Primitiven sein. Dieser Wert wurde in Qt 6.1 hinzugefügt. |
QPainter::LosslessImageRendering | 0x40 | Verwenden Sie nach Möglichkeit eine verlustfreie Bilddarstellung. Derzeit wird dieser Hinweis nur verwendet, wenn „ QPainter “ eingesetzt wird, um eine PDF-Datei über „ QPrinter “ oder „ QPdfWriter “ auszugeben, wobei die Aufrufe von „ drawImage()/drawPixmap()“ Bilder mit einem verlustfreien Komprimierungsalgorithmus anstelle der verlustbehafteten JPEG-Komprimierung kodieren. Dieser Wert wurde in Qt 5.13 hinzugefügt. |
QPainter::NonCosmeticBrushPatterns | 0x80 | Beim Malen mit einem Pinsel mit einem der vordefinierten Musterstile wird das Muster zusammen mit dem zu malenden Objekt ebenfalls transformiert. Standardmäßig wird das Muster als kosmetisches Element behandelt, sodass die Musterpixel unabhängig von aktiven Transformationen direkt auf Gerätepixel abgebildet werden. Dieser Wert wurde in Qt 6.4 hinzugefügt. |
Der Typ `RenderHints` ist ein `typedef` für ` QFlags<RenderHint>`. Er speichert eine OR-Kombination von `RenderHint`-Werten.
Siehe auch renderHints(), setRenderHint() und Rendering Quality.
Dokumentation zu den Mitgliedsfunktionen
QPainter::QPainter()
Erstellt einen „Painter“.
[explicit] QPainter::QPainter(QPaintDevice *device)
Erstellt einen Painter, der sofort mit dem Zeichnen des Paint- device s beginnt.
Dieser Konstruktor eignet sich für kurzlebige Painter, z. B. in einer ` QWidget::paintEvent()`-Funktion, und sollte nur einmal verwendet werden. Der Konstruktor ruft für Sie ` begin()` auf, und der Destruktor von `QPainter` ruft automatisch ` end()` auf.
Hier ist ein Beispiel mit ` begin()` und ` end()`:
void MyWidget::paintEvent(QPaintEvent *)
{
QPainter p;
p.begin(this);
p.drawLine(drawingCode); // drawing code
p.end();
}Das gleiche Beispiel unter Verwendung dieses Konstruktors:
void MyWidget::paintEvent(QPaintEvent *)
{
QPainter p(this);
p.drawLine(drawingCode); // drawing code
}Da der Konstruktor keine Rückmeldung geben kann, wenn die Initialisierung des Painters fehlgeschlagen ist, sollten Sie lieber begin() und end() verwenden, um auf externen Geräten, z. B. Druckern, zu zeichnen.
[noexcept] QPainter::~QPainter()
Vernichtet den Maler.
const QBrush &QPainter::background() const
Gibt den aktuellen Hintergrundpinsel zurück.
Siehe auch setBackground() und Settings.
Qt::BGMode QPainter::backgroundMode() const
Gibt den aktuellen Hintergrundmodus zurück.
Siehe auch setBackgroundMode() und Settings.
bool QPainter::begin(QPaintDevice *device)
Beginnt mit dem Zeichnen des Farb device s und gibt bei Erfolg true zurück; andernfalls wird false zurückgegeben.
Beachten Sie, dass alle Einstellungen des Painters (setPen(), setBrush() usw.) beim Aufruf von begin() auf die Standardwerte zurückgesetzt werden.
Die Fehler, die auftreten können, sind schwerwiegende Probleme, wie zum Beispiel diese:
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 timeBeachten Sie, dass Sie in den meisten Fällen einen der Konstruktoren anstelle von `begin()` verwenden können und dass ` end()` bei der Zerstörung automatisch ausgeführt wird.
Warnung: Ein Zeichenobjekt kann jeweils nur von einem Zeichner gleichzeitig gezeichnet werden.
Warnung: Das Zeichnen auf einem ` QImage ` mit dem Format ` QImage::Format_Indexed8 ` wird nicht unterstützt.
Siehe auch ` end()` und ` QPainter()`.
void QPainter::beginNativePainting()
Leert die Zeichenpipeline und bereitet die Umgebung darauf vor, dass der Benutzer Befehle direkt an den zugrunde liegenden Grafikkontext sendet. Muss von einem Aufruf von ` endNativePainting()` gefolgt werden.
Beachten Sie, dass nur die Zustände, die von der zugrunde liegenden Zeichen-Engine geändert werden, auf ihre jeweiligen Standardzustände zurückgesetzt werden. Welche Zustände zurückgesetzt werden, kann sich von Version zu Version ändern. In der OpenGL-2-Engine werden derzeit die folgenden Zustände zurückgesetzt:
- Das Blending ist deaktiviert
- Die Tiefen-, Stencil- und Scherenprüfungen sind deaktiviert
- die aktive Textur-Einheit wird auf 0 zurückgesetzt
- Die Tiefenmaske, die Tiefenfunktion und die Clear-Tiefe werden auf ihre Standardwerte zurückgesetzt
- Die Stencil-Maske, die Stencil-Operation und die Stencil-Funktion werden auf ihre Standardwerte zurückgesetzt
- Die aktuelle Farbe wird auf reines Weiß zurückgesetzt
Wenn beispielsweise der OpenGL-Polygonmodus vom Benutzer innerhalb eines „beginNativePaint()“- bzw. „endNativePainting()“-Blocks geändert wird, wird er durch „ endNativePainting()“ nicht auf den Standardzustand zurückgesetzt. Hier ist ein Beispiel, das die Vermischung von Painter-Befehlen und reinen OpenGL-Befehlen veranschaulicht:
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();Siehe auch ` endNativePainting()`.
QRectF QPainter::boundingRect(const QRectF &rectangle, int flags, const QString &text)
Gibt das Begrenzungsrechteck des „ text “ zurück, wie es erscheinen wird, wenn es innerhalb des angegebenen „ rectangle “ mit dem angegebenen „ flags “ unter Verwendung des aktuell festgelegten „ font()“ gezeichnet wird; d. h., die Funktion gibt an, wo die Funktion „ drawText()“ bei Verwendung derselben Argumente zeichnen wird.
Wenn das „ text “ nicht in das angegebene „ rectangle “ unter Verwendung des angegebenen „ flags “ passt, gibt die Funktion das erforderliche Rechteck zurück.
Das Argument „ flags “ ist ein bitweises ODER der folgenden Flags:
- Qt::AlignLeft
- Qt::AlignRight
- Qt::AlignHCenter
- Qt::AlignTop
- Qt::AlignBottom
- Qt::AlignVCenter
- Qt::AlignCenter
- Qt::TextSingleLine
- Qt::TextExpandTabs
- Qt::TextShowMnemonic
- Qt::TextWordWrap
- Qt::TextIncludeTrailingSpaces
Sind mehrere der Flags für die horizontale oder mehrere der Flags für die vertikale Ausrichtung gesetzt, ist die resultierende Ausrichtung undefiniert.
Siehe auch drawText(), Qt::Alignment und Qt::TextFlag.
QRect QPainter::boundingRect(const QRect &rectangle, int flags, const QString &text)
Gibt das Begrenzungsrechteck des „ text “ zurück, wie es erscheinen wird, wenn es innerhalb des angegebenen „ rectangle “ mit dem angegebenen „ flags “ unter Verwendung des aktuell festgelegten „ font()“ gezeichnet wird.
Dies ist eine überladene Funktion.
QRectF QPainter::boundingRect(const QRectF &rectangle, const QString &text, const QTextOption &option = QTextOption())
Anstatt Flags als bitweises ODER aus „ Qt::AlignmentFlag “ und „ Qt::TextFlag “ anzugeben, nimmt diese überladene Funktion ein Argument vom Typ „ option “ entgegen. Die Klasse „ QTextOption “ enthält eine Beschreibung allgemeiner Rich-Text-Eigenschaften.
Dies ist eine überladene Funktion.
Siehe auch „ QTextOption “.
QRect QPainter::boundingRect(int x, int y, int w, int h, int flags, const QString &text)
Gibt das Begrenzungsrechteck des angegebenen text zurück, wie es erscheinen würde, wenn es innerhalb des Rechtecks gezeichnet würde, das am Punkt (x, y) beginnt und die Breite w sowie die Höhe h hat.
Dies ist eine überladene Funktion.
const QBrush &QPainter::brush() const
Gibt den aktuellen Pinsel des Malers zurück.
Siehe auch QPainter::setBrush() und Settings.
QPoint QPainter::brushOrigin() const
Gibt den aktuellen Pinselursprung zurück. Verwenden Sie vorzugsweise QPainter::brushOriginF(), um den genauen Ursprung zu ermitteln.
Siehe auch ` setBrushOrigin()` und ` Settings`.
[since 6.11] QPointF QPainter::brushOriginF() const
Gibt den aktuellen Pinselursprung zurück.
Diese Funktion wurde in Qt 6.11 eingeführt.
Siehe auch „ setBrushOrigin()“ und „ Settings “.
QRectF QPainter::clipBoundingRect() const
Gibt das Begrenzungsrechteck des aktuellen Clips zurück, sofern ein Clip vorhanden ist; andernfalls wird ein leeres Rechteck zurückgegeben. Beachten Sie, dass der Clip-Bereich in logischen Koordinaten angegeben wird.
Es kann nicht garantiert werden, dass das Begrenzungsrechteck eng anliegt.
Siehe auch setClipRect(), setClipPath() und setClipRegion().
QPainterPath QPainter::clipPath() const
Gibt den aktuellen Clip-Pfad in logischen Koordinaten zurück.
Warnung: „ QPainter “ speichert den kombinierten Ausschnitt nicht explizit, da dies von der zugrunde liegenden Funktion „ QPaintEngine “ übernommen wird. Daher wird der Pfad bei Bedarf neu erstellt und in das aktuelle logische Koordinatensystem transformiert. Dies kann eine rechenintensive Operation sein.
Siehe auch „ setClipPath()“, „ clipRegion()“ und „ setClipping()“.
QRegion QPainter::clipRegion() const
Gibt den aktuell festgelegten Clip-Bereich zurück. Beachten Sie, dass der Clip-Bereich in logischen Koordinaten angegeben wird.
Warnung: ` QPainter ` speichert den kombinierten Ausschnitt nicht explizit, da dies von der zugrunde liegenden Funktion ` QPaintEngine` übernommen wird. Daher wird der Pfad bei Bedarf neu erstellt und in das aktuelle logische Koordinatensystem transformiert. Dies ist potenziell ein rechenintensiver Vorgang.
Siehe auch ` setClipRegion()`, ` clipPath()` und ` setClipping()`.
QTransform QPainter::combinedTransform() const
Gibt die Transformationsmatrix zurück, die die aktuelle Fenster-/Ansichtsbereichstransformation und die Welttransformation kombiniert.
Siehe auch setWorldTransform(), setWindow() und setViewport().
QPainter::CompositionMode QPainter::compositionMode() const
Gibt den aktuellen Kompositionsmodus zurück.
Siehe auch „ CompositionMode “ und „ setCompositionMode()“.
QPaintDevice *QPainter::device() const
Gibt das Zeichenobjekt zurück, auf dem dieser „Painter“ gerade zeichnet, oder „ nullptr “, falls der „Painter“ nicht aktiv ist.
Siehe auch isActive().
const QTransform &QPainter::deviceTransform() const
Gibt die Matrix zurück, die eine Transformation von logischen Koordinaten in Gerätekordinaten des plattformabhängigen Zeichen-Geräts durchführt.
Diese Funktion wird nur benötigt, wenn plattformabhängige Zeichenbefehle auf dem plattformabhängigen Handle (Qt::HANDLE) verwendet werden und die Plattform die Transformationen nicht nativ durchführt.
Anhand der Enumeration ` QPaintEngine::PaintEngineFeature ` lässt sich abfragen, ob die Plattform die Transformationen durchführt oder nicht.
Siehe auch ` worldTransform()` und ` QPaintEngine::hasFeature()`.
void QPainter::drawArc(const QRectF &rectangle, int startAngle, int spanAngle)
Zeichnet den Bogen, der durch die angegebenen Werte rectangle, startAngle und spanAngle definiert ist.
Die Werte „ startAngle “ und „ spanAngle “ müssen in 1/16 Grad angegeben werden, d. h. ein Vollkreis entspricht 5760 (16 × 360). Positive Winkelwerte bedeuten eine Drehung gegen den Uhrzeigersinn, negative Winkelwerte eine Drehung im Uhrzeigersinn. Null Grad entspricht der 3-Uhr-Position. Wenn rectangle nicht quadratisch ist, handelt es sich um exzentrische Winkel, die nicht die Richtung vom Mittelpunkt des Rechtecks aus messen, wie unter Arcs and Ellipses beschrieben.
![]() |
Siehe auch drawPie(), drawChord() und Koordinatensystem.
void QPainter::drawArc(const QRect &rectangle, int startAngle, int spanAngle)
Zeichnet den Bogen, der durch die angegebenen Werte rectangle, startAngle und spanAngle definiert ist.
Dies ist eine überladene Funktion.
void QPainter::drawArc(int x, int y, int width, int height, int startAngle, int spanAngle)
Zeichnet den durch das Rechteck definierten Bogen, das bei (x, y) beginnt, mit den angegebenen Werten für „ width “ und „ height “ sowie den vorgegebenen Werten für „ startAngle “ und „ spanAngle “.
Dies ist eine überladene Funktion.
void QPainter::drawChord(const QRectF &rectangle, int startAngle, int spanAngle)
Zeichnet die Sehne, die durch die angegebenen Werte „ rectangle “, „ startAngle “ und „ spanAngle “ definiert ist. Die Sehne wird mit der aktuellen Füllfarbe „ brush()“ ausgefüllt.
Die Winkel „startAngle“ und „spanAngle“ müssen in 1/16 Grad angegeben werden, d. h. ein Vollkreis entspricht 5760 (16 * 360). Positive Werte für die Winkel bedeuten eine Drehung gegen den Uhrzeigersinn, während negative Werte eine Drehung im Uhrzeigersinn bedeuten. Null Grad entspricht der 3-Uhr-Position. Wenn rectangle nicht quadratisch ist, handelt es sich um exzentrische Winkel, die nicht die Richtung vom Mittelpunkt des Rechtecks aus messen, wie unter Arcs and Ellipses beschrieben.
![]() |
Siehe auch „ drawArc()“, „ drawPie()“ und „Koordinatensystem“.
void QPainter::drawChord(const QRect &rectangle, int startAngle, int spanAngle)
Zeichnet die Chord, die durch die angegebenen Werte rectangle, startAngle und spanAngle definiert ist.
Dies ist eine überladene Funktion.
void QPainter::drawChord(int x, int y, int width, int height, int startAngle, int spanAngle)
Zeichnet die Sehne, die durch das Rechteck mit den Eckpunkten (x, y) definiert ist, unter Verwendung der angegebenen Werte für „ width “ und „ height “ sowie der vorgegebenen Werte für „ startAngle “ und „ spanAngle “.
Dies ist eine überladene Funktion.
void QPainter::drawConvexPolygon(const QPointF *points, int pointCount)
Zeichnet das konvexe Polygon, das durch die ersten pointCount Punkte im Array points definiert ist, mit dem aktuellen Stift.
![]() |
Der erste Punkt wird implizit mit dem letzten Punkt verbunden, und das Polygon wird mit der aktuellen Füllfarbe brush() ausgefüllt. Ist das übergebene Polygon nicht konvex, d. h. enthält es mindestens einen Winkel größer als 180 Grad, sind die Ergebnisse undefiniert.
Auf einigen Plattformen (z. B. X11) kann die Funktion `drawConvexPolygon()` schneller sein als die Funktion ` drawPolygon()`.
Siehe auch „ drawPolygon()“, „ drawPolyline()“ und „Koordinatensystem“.
void QPainter::drawConvexPolygon(const QPolygon &polygon)
Zeichnet das durch polygon definierte konvexe Polygon mit dem aktuellen Stift und Pinsel.
Dies ist eine überladene Funktion.
void QPainter::drawConvexPolygon(const QPolygonF &polygon)
Zeichnet das durch polygon definierte konvexe Polygon mit dem aktuellen Stift und Pinsel.
Dies ist eine überladene Funktion.
void QPainter::drawConvexPolygon(const QPoint *points, int pointCount)
Zeichnet das konvexe Polygon, das durch die ersten pointCount Punkte im Array points definiert ist, mit dem aktuellen Stift.
Dies ist eine überladene Funktion.
void QPainter::drawEllipse(const QRectF &rectangle)
Zeichnet die Ellipse, die durch die angegebene „ rectangle “ definiert ist.
Eine gefüllte Ellipse hat die Größe von ` rectangle`. `size()`. Eine umrandete Ellipse hat die Größe von ` rectangle`. `size()` zuzüglich der Stiftbreite.
Siehe auch „ drawPie“ () und „Koordinatensystem“.
void QPainter::drawEllipse(const QRect &rectangle)
Zeichnet die Ellipse, die durch die angegebenen Koordinaten rectangle definiert ist.
Dies ist eine überladene Funktion.
void QPainter::drawEllipse(const QPoint ¢er, int rx, int ry)
Zeichnet die Ellipse, die an der Position center liegt und die Radien rx und ry hat.
Dies ist eine überladene Funktion.
void QPainter::drawEllipse(const QPointF ¢er, qreal rx, qreal ry)
Zeichnet die Ellipse, die bei Koordinaten center positioniert ist und die Radien rx und ry aufweist.
Dies ist eine überladene Funktion.
void QPainter::drawEllipse(int x, int y, int width, int height)
Zeichnet die Ellipse, die durch das Rechteck mit den Eckpunkten (x, y) und den angegebenen Werten width und height definiert ist.
Dies ist eine überladene Funktion.
void QPainter::drawGlyphRun(const QPointF &position, const QGlyphRun &glyphs)
Zeichnet die Glyphen, die unter glyphs auf position dargestellt sind. Die „ position “ gibt die Kante der Grundlinie für die Glyphenfolge an. Die Glyphen werden aus der unter glyphs ausgewählten Schriftart und an den Offsets abgerufen, die durch die Positionen in glyphs angegeben sind.
Siehe auch QGlyphRun::setRawFont(), QGlyphRun::setPositions() und QGlyphRun::setGlyphIndexes().
void QPainter::drawImage(const QRectF &target, const QImage &image, const QRectF &source, Qt::ImageConversionFlags flags = Qt::AutoColor)
Zeichnet den rechteckigen Ausschnitt source des angegebenen Bildes image in das Rechteck target im Zeichenobjekt.
Hinweis: Das Bild wird so skaliert, dass es in das Rechteck passt, falls die Größe des Bildes und die des Rechtecks nicht übereinstimmen.
Hinweis: Unter Drawing High Resolution Versions of Pixmaps and Images erfahren Sie , wie dies durch QImage::devicePixelRatio() beeinflusst wird.
Wenn das Bild angepasst werden muss, um in ein Ergebnis mit niedrigerer Auflösung zu passen (z. B. Konvertierung von 32-Bit auf 8-Bit), verwenden Sie die Funktion „ flags “, um festzulegen, wie dies erfolgen soll.
Siehe auch drawPixmap() und QImage::devicePixelRatio().
void QPainter::drawImage(const QPoint &point, const QImage &image)
Zeichnet die angegebene Funktion „ image “ an der angegebenen Stelle „ point “.
Dies ist eine überladene Funktion.
void QPainter::drawImage(const QPointF &point, const QImage &image)
Zeichnet die angegebene „ image “ an der angegebenen Position „ point “.
Dies ist eine überladene Funktion.
void QPainter::drawImage(const QRect &rectangle, const QImage &image)
Zeichnet das angegebene Bild „ image “ in das angegebene Rechteck „ rectangle “.
Hinweis: Das Bild wird so skaliert, dass es in das Rechteck passt, falls die Größe des Bildes und die des Rechtecks nicht übereinstimmen.
Dies ist eine überladene Funktion.
void QPainter::drawImage(const QRectF &rectangle, const QImage &image)
Zeichnet das angegebene Bild „ image “ in das angegebene Rechteck „ rectangle “.
Hinweis: Das Bild wird so skaliert, dass es in das Rechteck passt, falls Bild- und Rechteckgröße nicht übereinstimmen.
Dies ist eine überladene Funktion.
void QPainter::drawImage(const QPoint &point, const QImage &image, const QRect &source, Qt::ImageConversionFlags flags = Qt::AutoColor)
Zeichnet den rechteckigen Ausschnitt source der angegebenen image mit dem Ursprung am angegebenen point.
Dies ist eine überladene Funktion.
void QPainter::drawImage(const QPointF &point, const QImage &image, const QRectF &source, Qt::ImageConversionFlags flags = Qt::AutoColor)
Zeichnet den rechteckigen Ausschnitt source der angegebenen image mit dem Ursprung am angegebenen point.
Dies ist eine überladene Funktion.
void QPainter::drawImage(const QRect &target, const QImage &image, const QRect &source, Qt::ImageConversionFlags flags = Qt::AutoColor)
Zeichnet den rechteckigen Ausschnitt source des angegebenen image in das Rechteck target im Malgerät.
Hinweis: Das Bild wird an die Größe des Rechtecks angepasst, wenn Bild- und Rechteckgröße nicht übereinstimmen.
Dies ist eine überladene Funktion.
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)
Zeichnet ein Bild an der Position (x, y), indem ein Teil von image in das Zeichenobjekt kopiert wird.
(x, y) gibt den Punkt links oben im Zeichenbereich an, auf den gezeichnet werden soll. (sx, sy) gibt den Punkt links oben in image an, der gezeichnet werden soll. Der Standardwert ist (0, 0).
(sw, sh) gibt die Größe des zu zeichnenden Bildes an. Der Standardwert (0, 0) (sowie negative Werte) bedeutet, dass bis zur unteren rechten Ecke des Bildes gezeichnet wird.
Dies ist eine überladene Funktion.
void QPainter::drawLine(const QLineF &line)
Zeichnet eine Linie, die durch line definiert ist.
Siehe auch drawLines(), drawPolyline() und Koordinatensystem.
void QPainter::drawLine(const QLine &line)
Zeichnet eine Linie, die durch ` line` definiert ist.
Dies ist eine überladene Funktion.
void QPainter::drawLine(const QPoint &p1, const QPoint &p2)
Zeichnet eine Linie von p1 nach p2.
Dies ist eine überladene Funktion.
void QPainter::drawLine(const QPointF &p1, const QPointF &p2)
Zeichnet eine Linie von p1 nach p2.
Dies ist eine überladene Funktion.
void QPainter::drawLine(int x1, int y1, int x2, int y2)
Zeichnet eine Linie von (x1, y1) nach (x2, y2).
Dies ist eine überladene Funktion.
void QPainter::drawLines(const QLineF *lines, int lineCount)
Zeichnet die ersten lineCount Zeilen im Array lines mit dem aktuellen Stift.
Siehe auch „ drawLine()“ und „ drawPolyline()“.
void QPainter::drawLines(const QList<QLine> &lines)
Zeichnet die durch die Liste „ lines “ definierten Linien mit dem aktuellen Stift und Pinsel.
Dies ist eine überladene Funktion.
void QPainter::drawLines(const QList<QLineF> &lines)
Zeichnet die durch die Liste „ lines “ definierten Linien mit dem aktuellen Stift und Pinsel.
Dies ist eine überladene Funktion.
void QPainter::drawLines(const QList<QPoint> &pointPairs)
Zeichnet mit dem aktuellen Stift für jedes Punktpaar im Vektor „ pointPairs “ eine Linie.
Dies ist eine überladene Funktion.
void QPainter::drawLines(const QList<QPointF> &pointPairs)
Zeichnet für jedes Punktpaar im Vektor „ pointPairs “ mit dem aktuellen Stift eine Linie. Enthält das Array eine ungerade Anzahl von Punkten, wird der letzte Punkt ignoriert.
Dies ist eine überladene Funktion.
void QPainter::drawLines(const QLine *lines, int lineCount)
Zeichnet die ersten lineCount Zeilen im Array lines mit dem aktuellen Stift.
Dies ist eine überladene Funktion.
void QPainter::drawLines(const QPoint *pointPairs, int lineCount)
Zeichnet die ersten lineCount Zeilen im Array pointPairs mit dem aktuellen Stift.
Dies ist eine überladene Funktion.
void QPainter::drawLines(const QPointF *pointPairs, int lineCount)
Zeichnet die ersten lineCount Zeilen im Array pointPairs mit dem aktuellen Stift. Die Zeilen werden als Punktpaare angegeben, daher muss die Anzahl der Einträge in pointPairs mindestens lineCount * 2 betragen.
Dies ist eine überladene Funktion.
void QPainter::drawPath(const QPainterPath &path)
Zeichnet den angegebenen Painter- path, wobei der aktuelle Stift für die Kontur und der aktuelle Pinsel für die Füllung verwendet werden.
![]() | |
Siehe auch das Beispiel „Painter Paths “ und das Beispiel „Vector Deformation“.
void QPainter::drawPicture(const QPointF &point, const QPicture &picture)
Gibt die angegebene „ picture “ unter der angegebenen „ point “ wieder.
Die Klasse „ QPicture “ ist ein Zeichen-Gerät, das „ QPainter “-Befehle aufzeichnet und wiederabspielt. Ein „Picture“ serialisiert die Zeichenbefehle in einem plattformunabhängigen Format auf ein E/A-Gerät. Alles, was auf ein Widget oder eine Pixmap gezeichnet werden kann, kann auch in einem „Picture“ gespeichert werden.
Diese Funktion verhält sich genau wie „ QPicture::play()“, wenn sie mit „ point = QPointF(0, 0)“ aufgerufen wird.
Hinweis: Der Zustand des Painters bleibt durch diese Funktion erhalten.
Siehe auch ` QPicture::play()`.
void QPainter::drawPicture(const QPoint &point, const QPicture &picture)
Spielt die angegebene Datei „ picture “ unter der angegebenen Adresse „ point “ ab.
Dies ist eine überladene Funktion.
void QPainter::drawPicture(int x, int y, const QPicture &picture)
Zeichnet die angegebene Funktion „ picture “ am Punkt (x, y).
Dies ist eine überladene Funktion.
void QPainter::drawPie(const QRectF &rectangle, int startAngle, int spanAngle)
Zeichnet ein Kreisdiagramm, das durch die angegebenen Werte rectangle, startAngle und spanAngle definiert ist.
Das Kreisdiagramm wird mit dem aktuellen brush() gefüllt.
Die Werte für `startAngle` und `spanAngle` müssen in 1/16 Grad angegeben werden, d. h. ein voller Kreis entspricht 5760 (16 * 360). Positive Winkelwerte bedeuten eine Drehung gegen den Uhrzeigersinn, negative Werte eine Drehung im Uhrzeigersinn. Null Grad entspricht der 3-Uhr-Position. Wenn „ rectangle “ nicht quadratisch ist, handelt es sich um exzentrische Winkel, die nicht die Richtung vom Mittelpunkt des Rechtecks aus messen, wie unter Arcs and Ellipses beschrieben.
![]() |
Siehe auch „ drawEllipse()“, „ drawChord()“ und „Koordinatensystem“.
void QPainter::drawPie(const QRect &rectangle, int startAngle, int spanAngle)
Zeichnet ein Kreisdiagramm, das durch die angegebenen Werte rectangle, startAngle und spanAngle definiert ist.
Dies ist eine überladene Funktion.
void QPainter::drawPie(int x, int y, int width, int height, int startAngle, int spanAngle)
Zeichnet den Kreisausschnitt, der durch das Rechteck mit den Eckpunkten (x, y) definiert ist, mit den angegebenen Werten für „ width “ und „ height “ sowie den vorgegebenen Werten für „ startAngle “ und „ spanAngle “.
Dies ist eine überladene Funktion.
void QPainter::drawPixmap(const QRectF &target, const QPixmap &pixmap, const QRectF &source)
Zeichnet den rechteckigen Ausschnitt source des angegebenen Bildes pixmap in das angegebene target im Zeichen-Device.
Hinweis: Die Pixmap wird an das Rechteck angepasst, falls die Größe der Pixmap und die des Rechtecks nicht übereinstimmen.
Hinweis: Informationen dazu, wie dies durch QPixmap::devicePixelRatio() beeinflusst wird,finden Sie unter Drawing High Resolution Versions of Pixmaps and Images.
Ist „ pixmap “ ein „ QBitmap “, wird die Pixmap mit den „gesetzten“ Bits in der Farbe des Stifts gezeichnet. Ist „ backgroundMode “ ein „ Qt::OpaqueMode “, werden die „nicht gesetzten“ Bits in der Farbe des Hintergrundpinsels gezeichnet; ist „ backgroundMode “ ein „ Qt::TransparentMode “, sind die „nicht gesetzten“ Bits transparent. Das Zeichnen von Bitmaps mit Farbverläufen oder Texturfarben wird nicht unterstützt.
Siehe auch „ drawImage “ () und „ QPixmap::devicePixelRatio “ ().
void QPainter::drawPixmap(const QPoint &point, const QPixmap &pixmap)
Zeichnet die angegebene Funktion pixmap mit ihrem Ursprung am angegebenen Punkt point.
Dies ist eine überladene Funktion.
void QPainter::drawPixmap(const QPointF &point, const QPixmap &pixmap)
Zeichnet die angegebene Funktion pixmap mit ihrem Ursprung am angegebenen Punkt point.
Dies ist eine überladene Funktion.
void QPainter::drawPixmap(const QRect &rectangle, const QPixmap &pixmap)
Zeichnet die angegebene Bilddatei „ pixmap “ in das angegebene Rechteck „ rectangle “.
Hinweis: Die Pixmap wird so skaliert, dass sie in das Rechteck passt, falls die Größe der Pixmap und die des Rechtecks nicht übereinstimmen.
Dies ist eine überladene Funktion.
void QPainter::drawPixmap(const QPoint &point, const QPixmap &pixmap, const QRect &source)
Zeichnet den rechteckigen Ausschnitt source der angegebenen pixmap mit dem Ursprung am angegebenen point.
Dies ist eine überladene Funktion.
void QPainter::drawPixmap(const QPointF &point, const QPixmap &pixmap, const QRectF &source)
Zeichnet den rechteckigen Ausschnitt source der angegebenen pixmap mit dem Ursprung am angegebenen point.
Dies ist eine überladene Funktion.
void QPainter::drawPixmap(const QRect &target, const QPixmap &pixmap, const QRect &source)
Zeichnet den rechteckigen Ausschnitt source des angegebenen Bildes pixmap in das angegebene Rechteck target im Zeichen-Device.
Hinweis: Die Pixmap wird an das Rechteck angepasst, falls die Größe der Pixmap und die des Rechtecks nicht übereinstimmen.
Dies ist eine überladene Funktion.
void QPainter::drawPixmap(int x, int y, const QPixmap &pixmap)
Zeichnet das angegebene „ pixmap “ an der Position (x, y).
Dies ist eine überladene Funktion.
void QPainter::drawPixmap(int x, int y, int width, int height, const QPixmap &pixmap)
Zeichnet die „ pixmap “ in das Rechteck an der Position (x, y) mit den angegebenen Werten „ width “ und „ height “.
Dies ist eine überladene Funktion.
void QPainter::drawPixmap(int x, int y, const QPixmap &pixmap, int sx, int sy, int sw, int sh)
Zeichnet eine Pixmap an den Koordinaten (x, y), indem ein Teil der angegebenen „ pixmap “ in das Zeichen-Device kopiert wird.
(x, y) gibt den Punkt links oben im Zeichenbereich an, auf den gezeichnet werden soll. (sx, sy) gibt den Punkt links oben in der „ pixmap “ an, die gezeichnet werden soll. Der Standardwert ist (0, 0).
(sw, sh) gibt die Größe der Pixmap an, die gezeichnet werden soll. Der Standardwert (0, 0) (sowie negative Werte) bedeutet, dass bis zur unteren rechten Ecke der Pixmap gezeichnet wird.
Dies ist eine überladene Funktion.
void QPainter::drawPixmap(int x, int y, int w, int h, const QPixmap &pixmap, int sx, int sy, int sw, int sh)
Zeichnet den rechteckigen Ausschnitt mit dem Ursprung (sx, sy), der Breite sw und der Höhe sh des angegebenen pixmap am Punkt (x, y) mit einer Breite von w und einer Höhe von h. Sind sw oder sh gleich Null, werden die Breite bzw. Höhe der Pixmap verwendet und um den Versatz sx/sy angepasst;
Dies ist eine überladene Funktion.
void QPainter::drawPixmapFragments(const QPainter::PixmapFragment *fragments, int fragmentCount, const QPixmap &pixmap, QPainter::PixmapFragmentHints hints = PixmapFragmentHints())
Diese Funktion dient dazu, pixmap oder ein Teilrechteck von pixmap an mehreren Positionen mit unterschiedlichem Maßstab, unterschiedlicher Drehung und unterschiedlicher Deckkraft zu zeichnen. fragments ist ein Array aus fragmentCount Elementen, die die Parameter für das Zeichnen der einzelnen Pixmap-Fragmente festlegen. Der Parameter hints kann verwendet werden, um Zeichnungshinweise zu übergeben.
Diese Funktion ist potenziell schneller als mehrere Aufrufe von ` drawPixmap()`, da das Backend Zustandsänderungen optimieren kann.
Siehe auch „ QPainter::PixmapFragment “ und „ QPainter::PixmapFragmentHint “.
void QPainter::drawPoint(const QPointF &position)
Zeichnet einen einzelnen Punkt an der angegebenen Koordinaten position, wobei die Farbe des aktuellen Stifts verwendet wird.
Siehe auch Koordinatensystem.
void QPainter::drawPoint(const QPoint &position)
Zeichnet einen einzelnen Punkt an der angegebenen Koordinaten position, wobei die Farbe des aktuellen Stifts verwendet wird.
Dies ist eine überladene Funktion.
void QPainter::drawPoint(int x, int y)
Zeichnet einen einzelnen Punkt an der Position (x, y).
Dies ist eine überladene Funktion.
void QPainter::drawPoints(const QPointF *points, int pointCount)
Zeichnet die ersten pointCount Punkte im Array points mit der Farbe des aktuellen Stifts.
Siehe auch Koordinatensystem.
void QPainter::drawPoints(const QPolygon &points)
Zeichnet die Punkte des Vektors „ points “.
Dies ist eine überladene Funktion.
void QPainter::drawPoints(const QPolygonF &points)
Zeichnet die Punkte des Vektors points.
Dies ist eine überladene Funktion.
void QPainter::drawPoints(const QPoint *points, int pointCount)
Zeichnet die ersten pointCount Punkte im Array points mit der Farbe des aktuellen Stifts.
Dies ist eine überladene Funktion.
void QPainter::drawPolygon(const QPointF *points, int pointCount, Qt::FillRule fillRule = Qt::OddEvenFill)
Zeichnet das Polygon, das durch die ersten Punkte ` pointCount ` im Array ` points ` definiert ist, mit dem aktuellen Stift und Pinsel.
![]() |
Der erste Punkt wird implizit mit dem letzten Punkt verbunden, und das Polygon wird mit dem aktuellen „ brush()“ ausgefüllt.
Ist ` fillRule ` gleich ` Qt::WindingFill`, wird das Polygon mit dem „Winding“-Füllalgorithmus gefüllt. Ist ` fillRule ` gleich ` Qt::OddEvenFill`, wird das Polygon mit dem „Odd-Even“-Füllalgorithmus gefüllt. Eine ausführlichere Beschreibung dieser Füllregeln finden Sie unter Qt::FillRule.
Siehe auch „ drawConvexPolygon()“, „ drawPolyline()“ und „Koordinatensystem“.
void QPainter::drawPolygon(const QPolygon &points, Qt::FillRule fillRule = Qt::OddEvenFill)
Zeichnet das durch die angegebene Koordinatenliste ` points ` definierte Polygon unter Verwendung der Füllregel ` fillRule`.
Dies ist eine überladene Funktion.
void QPainter::drawPolygon(const QPolygonF &points, Qt::FillRule fillRule = Qt::OddEvenFill)
Zeichnet das durch die angegebene Koordinaten points definierte Polygon unter Verwendung der Füllregel „ fillRule “.
Dies ist eine überladene Funktion.
void QPainter::drawPolygon(const QPoint *points, int pointCount, Qt::FillRule fillRule = Qt::OddEvenFill)
Zeichnet das Polygon, das durch die ersten pointCount Punkte im Array points definiert ist.
Dies ist eine überladene Funktion.
void QPainter::drawPolyline(const QPointF *points, int pointCount)
Zeichnet die durch die ersten Punkte von ` pointCount ` in ` points ` definierte Polylinie mit dem aktuellen Stift.
Beachten Sie, dass im Gegensatz zur Funktion „ drawPolygon()“ der letzte Punkt nicht mit dem ersten verbunden wird und die Polylinie auch nicht ausgefüllt wird.
Siehe auch „ drawLines()“, „ drawPolygon()“ und „Koordinatensystem“.
void QPainter::drawPolyline(const QPolygon &points)
Zeichnet die durch die angegebene „ points “ definierte Polylinie mit dem aktuellen Stift.
Dies ist eine überladene Funktion.
void QPainter::drawPolyline(const QPolygonF &points)
Zeichnet die durch die angegebene „ points “ definierte Polylinie mit dem aktuellen Stift.
Dies ist eine überladene Funktion.
void QPainter::drawPolyline(const QPoint *points, int pointCount)
Zeichnet die durch die ersten pointCount Punkte in points definierte Polylinie mit dem aktuellen Stift.
Dies ist eine überladene Funktion.
void QPainter::drawRect(const QRectF &rectangle)
Zeichnet das aktuelle rectangle mit dem aktuellen Stift und Pinsel.
Ein gefülltes Rechteck hat die Größe von ` rectangle`. `size()`. Ein umrandetes Rechteck hat die Größe von ` rectangle`. `size() ` plus die Stiftbreite.
Siehe auch drawRects(), drawPolygon() und Koordinatensystem.
void QPainter::drawRect(const QRect &rectangle)
Zeichnet das aktuelle rectangle mit dem aktuellen Stift und Pinsel.
Dies ist eine überladene Funktion.
void QPainter::drawRect(int x, int y, int width, int height)
Zeichnet ein Rechteck, dessen linke obere Ecke bei (x, y) liegt und dessen Breite und Höhe durch die angegebenen Werte width und height definiert sind.
Dies ist eine überladene Funktion.
void QPainter::drawRects(const QRectF *rectangles, int rectCount)
Zeichnet den ersten „ rectCount “ des angegebenen „ rectangles “ mit dem aktuellen Stift und Pinsel.
Siehe auch drawRect().
void QPainter::drawRects(const QList<QRect> &rectangles)
Zeichnet das angegebene „ rectangles “ mit dem aktuellen Stift und Pinsel.
Dies ist eine überladene Funktion.
void QPainter::drawRects(const QList<QRectF> &rectangles)
Zeichnet das angegebene „ rectangles “ mit dem aktuellen Stift und Pinsel.
Dies ist eine überladene Funktion.
void QPainter::drawRects(const QRect *rectangles, int rectCount)
Zeichnet das erste „ rectCount “ des angegebenen „ rectangles “ mit dem aktuellen Stift und Pinsel.
Dies ist eine überladene Funktion.
void QPainter::drawRoundedRect(const QRectF &rect, qreal xRadius, qreal yRadius, Qt::SizeMode mode = Qt::AbsoluteSize)
Zeichnet das angegebene Rechteck „ rect “ mit abgerundeten Ecken.
Die Argumente „ xRadius “ und „ yRadius “ geben die Radien der Ellipsen an, die die Ecken des abgerundeten Rechtecks definieren. Wenn „ mode “ auf „ Qt::RelativeSize “ gesetzt ist, werden „ xRadius “ und „ yRadius “ in Prozent der halben Breite bzw. Höhe des Rechtecks angegeben und sollten im Bereich von 0,0 bis 100,0 liegen.
Ein gefülltes Rechteck hat die Größe von rect.size(). Ein umrandetes Rechteck hat die Größe von rect.size() zuzüglich der Stiftbreite.
![]() |
Siehe auch „ drawRect()“ und „ QPen “.
void QPainter::drawRoundedRect(const QRect &rect, qreal xRadius, qreal yRadius, Qt::SizeMode mode = Qt::AbsoluteSize)
Zeichnet das angegebene Rechteck „ rect “ mit abgerundeten Ecken.
Dies ist eine überladene Funktion.
void QPainter::drawRoundedRect(int x, int y, int w, int h, qreal xRadius, qreal yRadius, Qt::SizeMode mode = Qt::AbsoluteSize)
Zeichnet das angegebene Rechteck x, y, w, h mit abgerundeten Ecken.
Dies ist eine überladene Funktion.
void QPainter::drawStaticText(const QPointF &topLeftPosition, const QStaticText &staticText)
Zeichnet die angegebene „ staticText “ an der angegebenen „ topLeftPosition “.
Der Text wird unter Verwendung der Schriftart und der Transformation gezeichnet, die für den „Painter“ festgelegt wurden. Wenn sich die für den „Painter“ festgelegte Schriftart und/oder Transformation von denen unterscheiden, die zur Initialisierung des Layouts von „ QStaticText “ verwendet wurden, muss das Layout neu berechnet werden. Verwenden Sie „ QStaticText::prepare()“, um „ staticText “ mit der Schriftart und der Transformation zu initialisieren, mit denen es später gezeichnet wird.
Wenn „ topLeftPosition “ nicht mehr dem Wert zum Zeitpunkt der Initialisierung von „ staticText “ oder zum Zeitpunkt der letzten Darstellung entspricht, entsteht ein geringer Mehraufwand beim Verschieben des Textes an seine neue Position.
Hinweis: Ist die Transformation des „Painters“ nicht affin, wird „ staticText “ mithilfe regulärer Aufrufe von „ drawText()“ gezeichnet, wodurch jegliches Potenzial für eine Leistungssteigerung verloren geht.
Hinweis: Die y-Position wird als Oberkante der Schriftart verwendet.
Siehe auch „ QStaticText “.
void QPainter::drawStaticText(const QPoint &topLeftPosition, const QStaticText &staticText)
Zeichnet die Schriftart „ staticText “ an der Position „ topLeftPosition “.
Hinweis: Die y-Position wird als Oberkante der Schriftart verwendet.
Dies ist eine überladene Funktion.
void QPainter::drawStaticText(int left, int top, const QStaticText &staticText)
Zeichnet die Schriftart „ staticText “ an den Koordinaten left und top.
Hinweis: Die y-Position wird als Oberkante der Schriftart verwendet.
Dies ist eine überladene Funktion.
void QPainter::drawText(const QPointF &position, const QString &text)
Zeichnet das angegebene ` text ` mit der aktuell definierten Textrichtung, beginnend bei der angegebenen ` position`.
Diese Funktion verarbeitet das Zeilenumbruchzeichen (\n) nicht, da sie den Text nicht in mehrere Zeilen aufteilen und das Zeilenumbruchzeichen nicht anzeigen kann. Verwenden Sie stattdessen die Überladung von QPainter::drawText(), die ein Rechteck als Argument akzeptiert, wenn Sie mehrere Textzeilen mit dem Zeilenumbruchzeichen zeichnen möchten oder wenn der Text umgebrochen werden soll.
Standardmäßig zeichnet QPainter Text mit Kantenglättung.
Hinweis: Die y-Position wird als Grundlinie der Schriftart verwendet.
Siehe auch ` setFont()` und ` setPen()`.
void QPainter::drawText(const QPoint &position, const QString &text)
Zeichnet den angegebenen Text „ text “ mit der aktuell definierten Textrichtung, beginnend an der angegebenen Position „ position “.
Standardmäßig zeichnet „ QPainter “ den Text mit Kantenglättung.
Hinweis: Die y-Position wird als Grundlinie der Schriftart verwendet.
Dies ist eine überladene Funktion.
Siehe auch setFont() und setPen().
void QPainter::drawText(const QRectF &rectangle, const QString &text, const QTextOption &option = QTextOption())
Zeichnet das angegebene „ text “ in das „ rectangle “, das mithilfe von „ option “ festgelegt wurde, um dessen Position, Richtung und Ausrichtung zu steuern. Die in „ option “ angegebenen Optionen überschreiben diejenigen, die für das „ QPainter “-Objekt selbst festgelegt wurden.
Standardmäßig zeichnet „ QPainter “ Text mit Kantenglättung.
Hinweis: Die y-Koordinate von „ rectangle “ wird als Oberkante der Schriftart verwendet.
Dies ist eine überladene Funktion.
Siehe auch „ setFont()“ und „ setPen()“.
void QPainter::drawText(int x, int y, const QString &text)
Zeichnet den angegebenen Text „ text “ an der Position (x, y) unter Verwendung der aktuell definierten Textrichtung des Zeichners.
Standardmäßig zeichnet „ QPainter “ den Text mit Kantenglättung.
Hinweis: Die y-Position wird als Grundlinie der Schriftart verwendet.
Dies ist eine überladene Funktion.
Siehe auch setFont() und setPen().
void QPainter::drawText(const QRect &rectangle, int flags, const QString &text, QRect *boundingRect = nullptr)
Zeichnet das angegebene „ text “ innerhalb des angegebenen „ rectangle “ gemäß dem festgelegten „ flags “.
Die „ boundingRect “ (sofern nicht null) wird so festgelegt, dass das Begrenzungsrechteck den gesamten Text umschließt. In der folgenden Abbildung stellt die gepunktete Linie beispielsweise den von der Funktion berechneten „ boundingRect “ dar, während die gestrichelte Linie den „ rectangle “ darstellt:
![]() | |
Standardmäßig zeichnet „ QPainter “ den Text mit Anti-Aliasing.
Hinweis: Die y-Koordinate von ` rectangle ` wird als Oberkante der Schriftart verwendet.
Dies ist eine überladene Funktion.
Siehe auch „ setFont()“ und „ setPen()“.
void QPainter::drawText(const QRectF &rectangle, int flags, const QString &text, QRectF *boundingRect = nullptr)
Zeichnet das angegebene „ text “ innerhalb des angegebenen „ rectangle “. Die „ rectangle “ definieren zusammen mit der Ausrichtung „ flags “ die Anker für das „ text “.
![]() | |
Das Argument ` boundingRect ` (sofern nicht null) legt fest, wie das Begrenzungsrechteck aussehen soll, um den gesamten Text zu umfassen. In der folgenden Abbildung stellt beispielsweise die gepunktete Linie den von der Funktion berechneten ` boundingRect ` dar, während die gestrichelte Linie den ` rectangle` darstellt:
![]() | |
Das Argument „ flags “ ist ein bitweises ODER aus den folgenden Flags:
- 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
Standardmäßig zeichnet „ QPainter “ den Text mit Anti-Aliasing.
Hinweis: Die y-Koordinate von „ rectangle “ wird als Oberkante der Schriftart verwendet.
Dies ist eine überladene Funktion.
Siehe auch „ Qt::AlignmentFlag“ , „ Qt::TextFlag “, „ boundingRect()“ und „ layoutDirection()“.
void QPainter::drawText(int x, int y, int width, int height, int flags, const QString &text, QRect *boundingRect = nullptr)
Zeichnet das angegebene „ text “ innerhalb des Rechtecks mit den Koordinaten (x, y), width und height.
Das Argument „ boundingRect “ (sofern nicht null) legt fest, wie das Begrenzungsrechteck aussehen soll, um den gesamten Text zu umfassen. In der folgenden Abbildung stellt die gepunktete Linie beispielsweise den von der Funktion berechneten Wert für „ boundingRect “ dar, während die gestrichelte Linie das Rechteck darstellt, das durch „ x “, „ y “, „ width “ und „ height “ definiert ist:
![]() | |
Das Argument ` flags ` ist eine bitweise ODER-Verknüpfung der folgenden Flags:
- Qt::AlignLeft
- Qt::AlignRight
- Qt::AlignHCenter
- Qt::AlignJustify
- Qt::AlignTop
- Qt::AlignBottom
- Qt::AlignVCenter
- Qt::AlignCenter
- Qt::TextSingleLine
- Qt::TextExpandTabs
- Qt::TextShowMnemonic
- Qt::TextWordWrap
Standardmäßig zeichnet ` QPainter ` Text mit Kantenglättung.
Hinweis: Die y-Position wird als Oberkante der Schriftart verwendet.
Dies ist eine überladene Funktion.
Siehe auch „ Qt::AlignmentFlag“ , „ Qt::TextFlag “, „ setFont()“ und „ setPen()“.
void QPainter::drawTiledPixmap(const QRectF &rectangle, const QPixmap &pixmap, const QPointF &position = QPointF())
Zeichnet ein gekacheltes „ pixmap “ innerhalb des angegebenen „ rectangle “ mit dem Ursprung am angegebenen „ position “.
Der Aufruf von `drawTiledPixmap()` entspricht in etwa dem mehrmaligen Aufruf von ` drawPixmap()`, um einen Bereich mit einer Pixmap zu füllen (kacheln), ist jedoch je nach zugrunde liegendem Fenstersystem potenziell wesentlich effizienter.
drawTiledPixmap() erzeugt auf Displays mit hoher dpi-Auflösung (mit devicePixelRatio > 1) dasselbe visuelle Kachelmuster wie auf Displays mit normaler dpi-Auflösung. Stellen Sie den Parameter `devicePixelRatio` bei ` pixmap ` ein, um die Kachelgröße zu steuern. Wenn Sie ihn beispielsweise auf 2 setzen, werden Breite und Höhe der Kacheln halbiert (sowohl auf 1x- als auch auf 2x-Displays), und auf 2x-Displays wird eine hochauflösende Ausgabe erzeugt.
Der Versatz des „ position “ wird in geräteunabhängigen Pixeln relativ zur oberen linken Ecke des „ rectangle “ angegeben. Mit dem „ position “ lässt sich das sich wiederholende Muster innerhalb des „ rectangle “ ausrichten.
Siehe auch „ drawPixmap()“.
void QPainter::drawTiledPixmap(const QRect &rectangle, const QPixmap &pixmap, const QPoint &position = QPoint())
Zeichnet einen gekachelten „ pixmap “ innerhalb des angegebenen „ rectangle “ mit dem Ursprung am angegebenen „ position “.
Dies ist eine überladene Funktion.
void QPainter::drawTiledPixmap(int x, int y, int width, int height, const QPixmap &pixmap, int sx = 0, int sy = 0)
Zeichnet einen gekachelten „ pixmap “ in das angegebene Rechteck.
(x, y) gibt den Punkt in der oberen linken Ecke des Zeichenbereichs an, auf den gezeichnet werden soll; mit den angegebenen Werten für width und height.
(sx, sy) gibt den Ursprung innerhalb des angegebenen Rechtecks an, in dem die Pixmap gezeichnet werden soll. Die Ursprungsposition wird in geräteunabhängigen Pixeln relativ zu (x, y) angegeben. Der Standardwert ist (0, 0).
Dies ist eine überladene Funktion.
bool QPainter::end()
Beendet den Malvorgang. Alle während des Malvorgangs verwendeten Ressourcen werden freigegeben. Normalerweise müssen Sie diese Funktion nicht aufrufen, da sie vom Destruktor aufgerufen wird.
Gibt ` true ` zurück, wenn der Painter nicht mehr aktiv ist; andernfalls gibt er ` false` zurück.
Siehe auch „ begin()“ und „ isActive()“.
void QPainter::endNativePainting()
Stellt den Painter nach der manuellen Ausgabe nativer Malbefehle wieder her. Ermöglicht es dem Painter, jeden nativen Zustand wiederherzustellen, auf den er angewiesen ist, bevor er weitere Painter-Befehle aufruft.
Siehe auch ` beginNativePainting()`.
void QPainter::eraseRect(const QRectF &rectangle)
Löscht den Bereich innerhalb der angegebenen rectangle. Entspricht dem Aufruf von
fillRect(rectangle, background());Siehe auch fillRect().
void QPainter::eraseRect(const QRect &rectangle)
Löscht den Bereich innerhalb der angegebenen Koordinaten rectangle.
Dies ist eine überladene Funktion.
void QPainter::eraseRect(int x, int y, int width, int height)
Löscht den Bereich innerhalb des Rechtecks, beginnend bei (x, y), mit den angegebenen Werten width und height.
Dies ist eine überladene Funktion.
void QPainter::fillPath(const QPainterPath &path, const QBrush &brush)
Füllt die angegebene „ path “ mit dem angegebenen „ brush “. Der Umriss wird nicht gezeichnet.
Alternativ können Sie anstelle eines „ QBrush “ einen „ QColor “ angeben; der Konstruktor „ QBrush “ (der ein „ QColor “-Argument erwartet) erstellt automatisch einen „Solid Pattern Brush“.
Siehe auch „ drawPath()“.
void QPainter::fillRect(const QRectF &rectangle, const QBrush &brush)
Füllt die angegebene „ rectangle “ mit der angegebenen „ brush “ auf.
Alternativ können Sie anstelle eines „ QBrush “ einen „ QColor “ angeben; der Konstruktor „ QBrush “ (der ein „ QColor “-Argument erwartet) erstellt automatisch einen Pinsel mit durchgehendem Muster.
Siehe auch „ drawRect()“.
void QPainter::fillRect(const QRect &rectangle, QGradient::Preset preset)
Füllt den angegebenen Bereich „ rectangle “ mit dem festgelegten Farbverlauf „ preset “.
Dies ist eine überladene Funktion.
void QPainter::fillRect(const QRect &rectangle, Qt::BrushStyle style)
Füllt den angegebenen Bereich „ rectangle “ mit dem angegebenen Pinsel „ style “.
Dies ist eine überladene Funktion.
void QPainter::fillRect(const QRect &rectangle, Qt::GlobalColor color)
Füllt das angegebene „ rectangle “ mit dem angegebenen „ color “ auf.
Dies ist eine überladene Funktion.
void QPainter::fillRect(const QRect &rectangle, const QBrush &brush)
Füllt die angegebene ` rectangle ` mit dem angegebenen ` brush`.
Dies ist eine überladene Funktion.
void QPainter::fillRect(const QRect &rectangle, const QColor &color)
Füllt das angegebene „ rectangle “ mit dem angegebenen „ color “.
Dies ist eine überladene Funktion.
void QPainter::fillRect(const QRectF &rectangle, QGradient::Preset preset)
Füllt die angegebene Funktion „ rectangle “ mit dem angegebenen Gradienten „ preset “.
Dies ist eine überladene Funktion.
void QPainter::fillRect(const QRectF &rectangle, Qt::BrushStyle style)
Füllt den angegebenen Bereich „ rectangle “ mit dem angegebenen Pinsel „ style “.
Dies ist eine überladene Funktion.
void QPainter::fillRect(const QRectF &rectangle, Qt::GlobalColor color)
Füllt das angegebene ` rectangle ` mit dem angegebenen ` color`.
Dies ist eine überladene Funktion.
void QPainter::fillRect(const QRectF &rectangle, const QColor &color)
Füllt die angegebene „ rectangle “ mit dem angegebenen „ color “ auf.
Dies ist eine überladene Funktion.
void QPainter::fillRect(int x, int y, int width, int height, QGradient::Preset preset)
Füllt das Rechteck, das bei (x, y) beginnt, mit den angegebenen Werten width und height unter Verwendung des angegebenen Farbverlaufs preset.
Dies ist eine überladene Funktion.
void QPainter::fillRect(int x, int y, int width, int height, Qt::BrushStyle style)
Füllt das Rechteck, das bei (x, y) beginnt, mit den angegebenen Werten „ width “ und „ height “ unter Verwendung des angegebenen Pinsels „ style “.
Dies ist eine überladene Funktion.
void QPainter::fillRect(int x, int y, int width, int height, Qt::GlobalColor color)
Füllt das Rechteck, das bei (x, y) beginnt, mit den angegebenen Werten width und height unter Verwendung der angegebenen Funktion color.
Dies ist eine überladene Funktion.
void QPainter::fillRect(int x, int y, int width, int height, const QBrush &brush)
Füllt das Rechteck, das bei (x, y) beginnt, mit den angegebenen Werten width und height unter Verwendung der angegebenen Funktion brush.
Dies ist eine überladene Funktion.
void QPainter::fillRect(int x, int y, int width, int height, const QColor &color)
Füllt das Rechteck, das bei (x, y) beginnt, mit den angegebenen Werten width und height unter Verwendung der angegebenen Funktion color.
Dies ist eine überladene Funktion.
const QFont &QPainter::font() const
Gibt die aktuell eingestellte Schriftart zurück, die zum Zeichnen von Text verwendet wird.
Siehe auch setFont(), drawText() und Settings.
QFontInfo QPainter::fontInfo() const
Gibt die Schriftartinformationen für den Painter zurück, sofern dieser aktiv ist. Andernfalls ist der Rückgabewert undefiniert.
Siehe auch font(), isActive() und Settings.
QFontMetrics QPainter::fontMetrics() const
Gibt die Schriftartenmetriken für den Painter zurück, sofern dieser aktiv ist. Andernfalls ist der Rückgabewert undefiniert.
Siehe auch font(), isActive() und Settings.
bool QPainter::hasClipping() const
Gibt „ true “ zurück, wenn Clipping festgelegt wurde; andernfalls wird „ false “ zurückgegeben.
Siehe auch „ setClipping()“ und „ Clipping “.
bool QPainter::isActive() const
Gibt „ true “ zurück, wenn „ begin()“ aufgerufen wurde und „ end()“ noch nicht aufgerufen wurde; andernfalls wird „ false “ zurückgegeben.
Siehe auch begin() und QPaintDevice::paintingActive().
Qt::LayoutDirection QPainter::layoutDirection() const
Gibt die vom Painter beim Zeichnen von Text verwendete Ausrichtungsrichtung zurück.
Siehe auch QTextOption::textDirection(), setLayoutDirection(), drawText() und Settings.
qreal QPainter::opacity() const
Gibt die Deckkraft des Malwerkzeugs zurück. Der Standardwert ist 1.
Siehe auch „ setOpacity()“.
QPaintEngine *QPainter::paintEngine() const
Gibt die Paint-Engine zurück, mit der der Painter derzeit arbeitet, sofern der Painter aktiv ist; andernfalls 0.
Siehe auch ` isActive()`.
const QPen &QPainter::pen() const
Gibt den aktuellen Stift des Painters zurück.
Siehe auch setPen() und Settings.
QPainter::RenderHints QPainter::renderHints() const
Gibt ein Flag zurück, das die für diesen Painter festgelegten Darstellungshinweise angibt.
Siehe auch setRenderHints(), testRenderHint() und Rendering Quality.
void QPainter::resetTransform()
Setzt alle Transformationen zurück, die mit den Funktionen „ translate()“, „ scale()“, „ shear()“, „ rotate()“, „ setWorldTransform()“, „ setViewport()“ und „ setWindow()“ vorgenommen wurden.
Siehe auch Coordinate Transformations.
void QPainter::restore()
Stellt den aktuellen Zustand des Painters wieder her (entnimmt einen gespeicherten Zustand vom Stapel).
Siehe auch ` save()`.
void QPainter::rotate(qreal angle)
Dreht das Koordinatensystem im Uhrzeigersinn. Der angegebene Parameter „ angle “ wird in Grad angegeben.
Siehe auch ` setWorldTransform()` und ` Coordinate Transformations`.
void QPainter::save()
Speichert den aktuellen Zustand des Painters (legt den Zustand auf einen Stapel). Auf einen Aufruf von `save()` muss ein entsprechender Aufruf von ` restore()` folgen; die Funktion ` end()` löst den Stapel wieder auf.
Siehe auch restore().
void QPainter::scale(qreal sx, qreal sy)
Skaliert das Koordinatensystem um (sx, sy).
Siehe auch setWorldTransform() und Coordinate Transformations.
void QPainter::setBackground(const QBrush &brush)
Setzt den Hintergrundpinsel des Malwerkzeugs auf den angegebenen „ brush “.
Der Hintergrundpinsel ist der Pinsel, mit dem beim Zeichnen von deckendem Text, gepunkteten Linien und Bitmaps ausgefüllt wird. Der Hintergrundpinsel hat im Modus „Transparenter Hintergrund“ (der Standardmodus) keine Auswirkung.
Siehe auch background(), setBackgroundMode() und Settings.
void QPainter::setBackgroundMode(Qt::BGMode mode)
Setzt den Hintergrundmodus des Malwerkzeugs auf den angegebenen mode
Qt::TransparentMode (Standard) zeichnet gepunktete Linien und Text, ohne die Hintergrundpixel zu setzen. ` Qt::OpaqueMode ` füllt diesen Bereich mit der aktuellen Hintergrundfarbe.
Beachten Sie, dass Sie QPixmap::setMask() verwenden müssen, um eine Bitmap oder Pixmap transparent zu zeichnen.
Siehe auch backgroundMode(), setBackground() und Settings.
void QPainter::setBrush(const QBrush &brush)
Setzt den Pinsel des Malers auf die angegebene „ brush “.
Der Pinsel des Malers legt fest, wie Formen gefüllt werden.
Siehe auch „ brush()“ und „ Settings “.
[since 6.11] void QPainter::setBrush(QBrush &&brush)
Dies ist eine überladene Funktion.
Diese Funktion wurde in Qt 6.11 eingeführt.
[since 6.9] void QPainter::setBrush(QColor color)
Stellt den Pinsel des Malers auf einen Vollpinsel mit dem angegebenen „ color “ ein.
Dies ist eine überladene Funktion.
Diese Funktion wurde in Qt 6.9 eingeführt.
void QPainter::setBrush(Qt::BrushStyle style)
Setzt den Pinsel des Malers auf die Farbe Schwarz und die angegebene „ style “.
Dies ist eine überladene Funktion.
[since 6.9] void QPainter::setBrush(Qt::GlobalColor color)
Stellt den Pinsel des Malers auf einen Vollpinsel mit dem angegebenen „ color “ ein.
Dies ist eine überladene Funktion.
Diese Funktion wurde in Qt 6.9 eingeführt.
void QPainter::setBrushOrigin(const QPointF &position)
Setzt den Pinselursprung auf position.
Der Pinselursprung gibt die Koordinate (0, 0) des Pinsels des Painters an.
Beachten Sie, dass die Funktion ` brushOrigin()` in Qt 3 zwar erforderlich war, um den Hintergrund des übergeordneten Elements für ein Widget zu übernehmen, dies jedoch in Qt 4 nicht mehr der Fall ist, da der Qt-4-Painter den Hintergrund nur dann zeichnet, wenn Sie dies explizit anweisen, indem Sie die Eigenschaft ` autoFillBackground ` des Widgets auf `true` setzen.
Siehe auch „ brushOrigin()“ und „ Settings “.
void QPainter::setBrushOrigin(const QPoint &position)
Setzt den Ursprung des Pinsels auf die angegebene Koordinaten position.
Dies ist eine überladene Funktion.
void QPainter::setBrushOrigin(int x, int y)
Setzt den Ursprung des Pinsels auf den Punkt (x, y).
Dies ist eine überladene Funktion.
void QPainter::setClipPath(const QPainterPath &path, Qt::ClipOperation operation = Qt::ReplaceClip)
Aktiviert das Clipping und legt den Clip-Pfad für den Painter auf den angegebenen „ path “ fest, mit dem Clip- operation.
Beachten Sie, dass der Ausschnittpfad in logischen (Maler-)Koordinaten angegeben wird.
Siehe auch clipPath(), clipRegion() und Clipping.
void QPainter::setClipRect(const QRectF &rectangle, Qt::ClipOperation operation = Qt::ReplaceClip)
rectangle Aktiviert das Clipping und legt den Clipping-Bereich mithilfe der angegebenen Clip-Koordinaten operation auf die angegebenen Werte fest. Standardmäßig wird das aktuelle Clip-Rechteck ersetzt.
Beachten Sie, dass das Ausschnittrechteck in logischen (Painter-)Koordinaten angegeben wird.
Siehe auch clipRegion(), setClipping() und Clipping.
void QPainter::setClipRect(int x, int y, int width, int height, Qt::ClipOperation operation = Qt::ReplaceClip)
Aktiviert das Clipping und legt den Clipping-Bereich auf das Rechteck fest, das an den Koordinaten (x, y) beginnt und die angegebenen Werte für „ width “ und „ height “ aufweist.
void QPainter::setClipRect(const QRect &rectangle, Qt::ClipOperation operation = Qt::ReplaceClip)
Aktiviert das Clipping und legt den Clip-Bereich mithilfe des angegebenen Clip- operation s auf den angegebenen rectangle fest.
Dies ist eine überladene Funktion.
void QPainter::setClipRegion(const QRegion ®ion, Qt::ClipOperation operation = Qt::ReplaceClip)
Legt den Clip-Bereich mithilfe der angegebenen Clip- operation auf die angegebene region fest. Standardmäßig wird der aktuelle Clip-Bereich durch den neuen ersetzt.
Beachten Sie, dass der Ausschnittbereich in logischen Koordinaten angegeben wird.
Siehe auch „ clipRegion()“, „ setClipRect()“ und „ Clipping “.
void QPainter::setClipping(bool enable)
Aktiviert das Clipping, wenn „ enable “ auf „true“ gesetzt ist, oder deaktiviert es, wenn „ enable “ auf „false“ gesetzt ist.
Siehe auch hasClipping() und Clipping.
void QPainter::setCompositionMode(QPainter::CompositionMode mode)
Stellt den Kompositionsmodus auf den angegebenen mode ein.
Warnung: Nur ein „ QPainter “, der auf einem „ QImage “ ausgeführt wird, unterstützt alle Kompositionsmodi vollständig. Die „RasterOp“-Modi werden für X11 unterstützt, wie unter compositionMode() beschrieben.
Siehe auch compositionMode().
void QPainter::setFont(const QFont &font)
Setzt die Schriftart des Malers auf die angegebene „ font “.
Diese Schriftart wird von nachfolgenden drawText()-Funktionen verwendet. Die Textfarbe entspricht der Stiftfarbe.
Wenn Sie eine Schriftart festlegen, die nicht verfügbar ist, sucht Qt nach einer möglichst ähnlichen. „ font()“ gibt den mit „setFont()“ festgelegten Wert zurück, und „ fontInfo()“ gibt die tatsächlich verwendete Schriftart zurück (die möglicherweise identisch ist).
Siehe auch font(), drawText() und Settings.
void QPainter::setLayoutDirection(Qt::LayoutDirection direction)
Legt die vom „Painter“ beim Zeichnen von Text verwendete Ausrichtungsrichtung auf die angegebene „ direction “ fest.
Die Standardeinstellung ist ` Qt::LayoutDirectionAuto`, wodurch die Richtung implizit anhand des gezeichneten Textes ermittelt wird.
Siehe auch QTextOption::setTextDirection(), layoutDirection(), drawText() und Settings.
void QPainter::setOpacity(qreal opacity)
Stellt die Deckkraft des Malwerkzeugs auf „ opacity “ ein. Der Wert sollte im Bereich von 0,0 bis 1,0 liegen, wobei 0,0 vollständig transparent und 1,0 vollständig undurchsichtig ist.
Die für den Malwerkzeug festgelegte Deckkraft gilt für jeden Zeichenvorgang separat. Das Ausfüllen einer Form und das Zeichnen ihres Umrisses werden als separate Zeichenvorgänge behandelt.
Siehe auch ` opacity()`.
void QPainter::setPen(const QPen &pen)
Legt den Zeichenstift so fest, dass er dem angegebenen „ pen “ entspricht.
Die „ pen “ legt fest, wie Linien und Konturen gezeichnet werden, und bestimmt außerdem die Textfarbe.
Siehe auch „ pen()“ und „ Settings “.
[since 6.11] void QPainter::setPen(QPen &&pen)
Dies ist eine überladene Funktion.
Diese Funktion wurde in Qt 6.11 eingeführt.
void QPainter::setPen(Qt::PenStyle style)
Stellt den Zeichenstift so ein, dass er die angegebene style, die Breite 1 und die Farbe Schwarz hat.
Dies ist eine überladene Funktion.
void QPainter::setPen(const QColor &color)
Legt für den Zeichenstift den Stil „ Qt::SolidLine “, die Breite 1 und den angegebenen „ color “ fest.
Dies ist eine überladene Funktion.
void QPainter::setRenderHint(QPainter::RenderHint hint, bool on = true)
Setzt den angegebenen Render hint us für den Painter, wenn „ on “ wahr ist; andernfalls wird der Render us gelöscht.
Siehe auch setRenderHints(), renderHints() und Rendering Quality.
void QPainter::setRenderHints(QPainter::RenderHints hints, bool on = true)
Setzt die angegebenen Render hints en für den Painter, wenn „ on “ auf „true“ gesetzt ist; andernfalls werden die Render en gelöscht.
Siehe auch ` setRenderHint()`, ` renderHints()` und ` Rendering Quality`.
void QPainter::setTransform(const QTransform &transform, bool combine = false)
Legt die Welttransformationsmatrix fest. Ist „ combine “ auf „true“ gesetzt, wird die angegebene „ transform “ mit der aktuellen Matrix kombiniert; andernfalls ersetzt sie die aktuelle Matrix.
Siehe auch „ transform()“ und „ setWorldTransform()“.
void QPainter::setViewTransformEnabled(bool enable)
Aktiviert Ansichts-Transformationen, wenn „ enable “ auf „true“ gesetzt ist, oder deaktiviert sie, wenn „ enable “ auf „false“ gesetzt ist.
Siehe auch „ viewTransformEnabled()“ und „Fenster-Viewport-Konvertierung“.
void QPainter::setViewport(const QRect &rectangle)
Setzt das Viewport-Rechteck des Painters auf das angegebene „ rectangle “ und aktiviert Ansichtstransformationen.
Das Ansichtsfenster-Rechteck ist Teil der Ansichtstransformation. Das Ansichtsfenster definiert das Gerätekordinatensystem. Sein Gegenstück, die „ window()“, definiert das logische Koordinatensystem.
Das Standard-Ansichtsbereichsrechteck entspricht dem Rechteck des Geräts.
Siehe auch „ viewport()“, „ viewTransformEnabled()“ und „Fenster-Viewport-Konvertierung“.
void QPainter::setViewport(int x, int y, int width, int height)
Legt das Ansichtsfenster des Painters auf das Rechteck fest, das bei den Koordinaten (x, y) beginnt und die angegebenen Werte für „ width “ und „ height “ aufweist.
Dies ist eine überladene Funktion.
void QPainter::setWindow(const QRect &rectangle)
Setzt das Malerfenster auf das angegebene Fenster „ rectangle “ und aktiviert Ansichtstransformationen.
Das Fensterrechteck ist Teil der Ansichts-Transformation. Das Fenster definiert das logische Koordinatensystem. Sein Gegenstück, das „ viewport()“, definiert das Gerätekordinatensystem.
Das Standard-Fensterrechteck entspricht dem Rechteck des Geräts.
Siehe auch „ window()“, „ viewTransformEnabled()“ und „Umwandlung von Fenster zu Ansichtsbereich“.
void QPainter::setWindow(int x, int y, int width, int height)
Setzt das Fenster des Painters auf das Rechteck, das bei (x, y) beginnt, sowie auf die angegebenen Werte für „ width “ und „ height “.
Dies ist eine überladene Funktion.
void QPainter::setWorldMatrixEnabled(bool enable)
Aktiviert Transformationen, wenn „ enable “ auf „true“ gesetzt ist, oder deaktiviert sie, wenn „ enable “ auf „false“ gesetzt ist. Die Welt-Transformationsmatrix wird nicht verändert.
Siehe auch worldMatrixEnabled(), worldTransform() und Coordinate Transformations.
void QPainter::setWorldTransform(const QTransform &matrix, bool combine = false)
Legt die Welttransformationsmatrix fest. Wenn „ combine “ auf „true“ gesetzt ist, wird die angegebene „ matrix “ mit der aktuellen Matrix kombiniert; andernfalls ersetzt sie die aktuelle Matrix.
Siehe auch „ worldTransform()“, „ transform()“ und „ setTransform()“.
void QPainter::shear(qreal sh, qreal sv)
Schert das Koordinatensystem um (sh, sv).
Siehe auch setWorldTransform() und Coordinate Transformations.
void QPainter::strokePath(const QPainterPath &path, const QPen &pen)
Zeichnet die Kontur (Striche) des Pfades path mit dem durch pen
Siehe auch fillPath() und Drawing.
bool QPainter::testRenderHint(QPainter::RenderHint hint) const
Gibt „ true “ zurück, wenn „ hint “ gesetzt ist; andernfalls gibt es „ false “ zurück.
Siehe auch renderHints() und setRenderHint().
const QTransform &QPainter::transform() const
Alias für worldTransform(). Gibt die Welttransformationsmatrix zurück.
Siehe auch „ setTransform()“ und „ worldTransform()“.
void QPainter::translate(const QPointF &offset)
Verschiebt das Koordinatensystem um den angegebenen Wert „ offset “; d. h., der angegebene Wert „ offset “ wird zu den Punkten addiert.
Siehe auch setWorldTransform() und Coordinate Transformations.
void QPainter::translate(const QPoint &offset)
Verschiebt das Koordinatensystem um den angegebenen Wert ` offset`.
Dies ist eine überladene Funktion.
void QPainter::translate(qreal dx, qreal dy)
Verschiebt das Koordinatensystem um den Vektor (dx, dy).
Dies ist eine überladene Funktion.
bool QPainter::viewTransformEnabled() const
Gibt „ true “ zurück, wenn die Ansichtstransformation aktiviert ist; andernfalls wird „false“ zurückgegeben.
Siehe auch „ setViewTransformEnabled()“ und „ worldTransform()“.
QRect QPainter::viewport() const
Gibt das Viewport-Rechteck zurück.
Siehe auch „ setViewport()“ und „ setViewTransformEnabled()“.
QRect QPainter::window() const
Gibt das Fensterrechteck zurück.
Siehe auch „ setWindow()“ und „ setViewTransformEnabled()“.
bool QPainter::worldMatrixEnabled() const
Gibt „ true “ zurück, wenn die Welttransformation aktiviert ist; andernfalls wird „false“ zurückgegeben.
Siehe auch „ setWorldMatrixEnabled()“, „ worldTransform()“ und „Koordinatensystem“.
const QTransform &QPainter::worldTransform() const
Gibt die Welttransformationsmatrix zurück.
Siehe auch ` 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.






















