Zeichnen und Füllen

Zeichnen

QPainter bietet hochgradig optimierte Funktionen für die meisten der von GUI-Programmen benötigten Zeichenfunktionen. Es kann alles zeichnen, von einfachen grafischen Primitiven (dargestellt durch die Klassen QPoint, QLine, QRect, QRegion und QPolygon ) bis hin zu komplexen Formen wie Vektorpfaden. In Qt werden Vektorpfade durch die Klasse QPainterPath repräsentiert. QPainterPath stellt einen Container für Maloperationen zur Verfügung, mit dem grafische Formen konstruiert und wiederverwendet werden können.

QPainterPath

Ein Malpfad ist ein Objekt, das aus Linien und Kurven besteht. Zum Beispiel besteht ein Rechteck aus Linien und eine Ellipse aus Kurven.

Der Hauptvorteil von Malerpfaden gegenüber normalen Zeichenoperationen besteht darin, dass komplexe Formen nur einmal erstellt werden müssen; anschließend können sie viele Male gezeichnet werden, indem nur die Funktion QPainter::drawPath() aufgerufen wird.

Ein QPainterPath Objekt kann zum Füllen, Konturieren und Beschneiden verwendet werden. Um füllbare Umrisse für einen bestimmten Malerpfad zu erzeugen, verwenden Sie die Klasse QPainterPathStroker.

Linien und Umrisse werden mit der Klasse QPen gezeichnet. Ein Stift wird durch seinen Stil (d. h. seinen Linientyp), seine Breite, seinen Pinsel, die Art und Weise, wie die Endpunkte gezeichnet werden (cap-style) und die Art und Weise, wie Verbindungen zwischen zwei verbundenen Linien gezeichnet werden (join-style), definiert. Der Pinsel des Stifts ist ein QBrush Objekt, das zum Füllen der mit dem Stift erzeugten Striche verwendet wird, d.h. die Klasse QBrush definiert das Füllmuster.

QPainter kann auch ausgerichteten Text und Pixmaps zeichnen.

Beim Zeichnen von Text wird die Schriftart über die Klasse QFont festgelegt. Qt verwendet die Schriftart mit den angegebenen Attributen, oder wenn keine passende Schriftart existiert, verwendet Qt die am besten passende installierte Schriftart. Die Attribute der tatsächlich verwendeten Schriftart können mit der Klasse QFontInfo abgefragt werden. Darüber hinaus liefert die Klasse QFontMetrics die Schriftmaße, und die Klasse QFontDatabase liefert Informationen über die im zugrunde liegenden Fenstersystem verfügbaren Schriftarten.

Normalerweise zeichnet QPainter in einem "natürlichen" Koordinatensystem, ist aber in der Lage, mit der Klasse QTransform Ansichts- und Welttransformationen durchzuführen. Weitere Informationen finden Sie unter Koordinatensystem, wo auch der Rendering-Prozess beschrieben wird, d. h. die Beziehung zwischen der logischen Darstellung und den gerenderten Pixeln, sowie die Vorteile des Anti-Aliased Painting.

Anti-Alias-Malerei

Beim Zeichnen wird das Pixel-Rendering durch den Render-Hinweis QPainter::Antialiasing gesteuert. Das QPainter::RenderHint enum wird verwendet, um Flags an QPainter zu übergeben, die von einer bestimmten Engine beachtet werden können oder nicht.

Der Wert QPainter::Antialiasing gibt an, dass die Engine die Kanten von Primitiven wenn möglich "antialias", d. h. durch Verwendung unterschiedlicher Farbintensitäten glätten sollte.

Füllen

Formen werden mit der Klasse QBrush gefüllt. Ein Pinsel wird durch seine Farbe und seinen Stil (d.h. sein Füllmuster) definiert.

Jede Farbe in Qt wird durch die Klasse QColor repräsentiert, die die Farbmodelle RGB, HSV und CMYK unterstützt. QColor unterstützt auch alpha-geblendete Konturen und Füllungen (Angabe des Transparenzeffekts), und die Klasse ist plattform- und geräteunabhängig (die Farben werden mithilfe der Klasse QColormap auf die Hardware abgebildet). Weitere Informationen finden Sie in der Dokumentation der Klasse QColor.

Die verfügbaren Füllmuster werden durch das Qt::BrushStyle enum beschrieben. Dazu gehören Grundmuster, die von einheitlicher Farbe bis zu sehr spärlichen Mustern reichen, verschiedene Linienkombinationen, Verlaufsfüllungen und Texturen. Qt stellt die Klasse QGradient zur Verfügung, um benutzerdefinierte Farbverlaufsfüllungen zu definieren, während Texturmuster mit der Klasse QPixmap spezifiziert werden.

QGradient

Die Klasse QGradient wird in Kombination mit QBrush verwendet, um Farbverlaufsfüllungen zu definieren.

Qt unterstützt derzeit drei Arten von Farbverlaufsfüllungen: Lineare Farbverläufe interpolieren Farben zwischen Start- und Endpunkten, radiale Farbverläufe interpolieren Farben zwischen einem Brennpunkt und Endpunkten auf einem ihn umgebenden Kreis, und konische Farbverläufe interpolieren Farben um einen Mittelpunkt.

© 2025 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.