Auf dieser Seite

QCanvasGradient Class

QCanvasGradient ist die Basisklasse für alle QCanvasPainter Farbverlaufspinsel. Mehr...

Kopfzeile: #include <QCanvasGradient>
CMake: find_package(Qt6 REQUIRED COMPONENTS CanvasPainter)
target_link_libraries(mytarget PRIVATE Qt6::CanvasPainter)
Seit: Qt 6.11
Erbt: QCanvasBrush
Geerbt von:

QCanvasBoxGradient, QCanvasConicalGradient, QCanvasLinearGradient, und QCanvasRadialGradient

Status: Technische Vorschau

Öffentliche Funktionen

QColor endColor() const
void setColorAt(float position, const QColor &color)
void setEndColor(const QColor &color)
void setStartColor(const QColor &color)
void setStops(const QCanvasGradientStops &stops)
QColor startColor() const
QCanvasGradientStops stops() const
QCanvasBrush::BrushType type() const
operator QVariant() const
QCanvasGradientStops
bool operator!=(const QCanvasGradient &lhs, const QCanvasGradient &rhs)
QDataStream &operator<<(QDataStream &stream, const QCanvasGradient &gradient)
QDataStream &operator<<(QDataStream &stream, const QCanvasGradientStop &stop)
bool operator==(const QCanvasGradient &lhs, const QCanvasGradient &rhs)
QDataStream &operator>>(QDataStream &stream, QCanvasGradient &gradient)
QDataStream &operator>>(QDataStream &stream, QCanvasGradientStop &stop)

Detaillierte Beschreibung

QCanvasGradient ist die Basisklasse für alle QCanvasPainter Gradientenpinsel. Derzeit gibt es vier Arten von Farbverläufen: QCanvasLinearGradient, QCanvasRadialGradient, QCanvasConicalGradient und QCanvasBoxGradient.

Wenn bei setStartColor, setEndColor, setColorAt oder setStops keine Stopps angegeben werden, wird der Farbverlauf als Startfarbe weiß (255,255,255) und als Endfarbe transparent (0,0,0,0) gerendert. Wenn nur ein einziger Stopp angegeben wird, wird der Farbverlauf mit dieser Farbe gefüllt.

QCanvasPainter verwendet zwei verschiedene Ansätze zum Malen von Farbverläufen.

  • Bei maximal 2 Stopps werden die Farben als 2 vec4-Uniformen an den Shader übergeben. Dies macht die Animation von 2-Stop-Farbverläufen sehr performant, ohne zusätzliche Schritte dazwischen.
  • Bei mehr als 2 Stopps werden die Farben als eindimensionale Textur an den Shader übergeben. Standardmäßig ist die Texturgröße 1x256 Pixel, optimiert für Qualität und Leistung. Die Texturen werden zwischengespeichert, so dass die vorherige Textur auch dann wiederverwendet werden kann, wenn sich andere Eigenschaften des Verlaufs (wie Position, Winkel usw.) ändern, wenn sich die Stopps oder Farben nicht ändern. Obwohl die Animation von Farbverläufen mit mehreren Stopps schnell ist, führt sie zu Textur-Uploads, daher sollte man abwägen, ob es sich lohnt.

Es gibt einige Umgebungsvariablen, mit denen die Verwendung von Texturen für Farbverläufe gesteuert werden kann:

  • QCPAINTER_DISABLE_TEXTURE_USAGE_TRACKING - Standardmäßig wird die Texturverwendung von Farbverläufen überwacht und unter dem maximalen Wert gehalten. Setzen Sie diese Umgebungsvariable, um das Tracking zu deaktivieren und alle Farbverlaufstexturen im Speicher zu behalten.
  • QCPAINTER_MAX_TEXTURES - Standardmäßig ist die maximale Anzahl von Texturen 1024. Setzen Sie diese Umgebungsvariable auf die Anzahl der gewünschten maximalen Texturmenge. Die derzeit unbenutzten temporären Gradiententexturen werden automatisch entfernt, wenn die maximale Anzahl erreicht ist.

    Hinweis: Dies hat keine Auswirkung, wenn die Texturnutzungsverfolgung deaktiviert wurde.

Dokumentation der Mitgliedsfunktionen

QColor QCanvasGradient::endColor() const

Gibt die Endfarbe des Farbverlaufs oder die Farbe an der größten Position zurück. Wenn die Endfarbe nicht festgelegt wurde, wird die Standard-Endfarbe transparentes Schwarz (0, 0, 0, 0) zurückgegeben.

Siehe auch setEndColor().

void QCanvasGradient::setColorAt(float position, const QColor &color)

Erzeugt einen Haltepunkt am angegebenen position mit dem angegebenen color. Die angegebene position muss im Bereich von 0 bis 1 liegen.

Siehe auch setStops() und stops().

void QCanvasGradient::setEndColor(const QColor &color)

Setzt die Endfarbe des Farbverlaufs auf color. Dies entspricht dem Aufruf von setColorAt() mit der Position 1.

Siehe auch endColor().

void QCanvasGradient::setStartColor(const QColor &color)

Setzt die Startfarbe des Farbverlaufs auf color. Dies ist gleichbedeutend mit dem Aufruf von setColorAt() mit der Position 0.

Siehe auch startColor().

void QCanvasGradient::setStops(const QCanvasGradientStops &stops)

Ersetzt den aktuellen Satz von Haltepunkten durch den angegebenen stops.

Die Regeln für die Haltestellenliste sind folgende:

  • Die Liste muss mindestens 2 Haltestellen enthalten.
  • Die Positionen der Haltestellen müssen im Bereich von 0 bis 1 liegen und mit den niedrigsten Haltestellen zuerst sortiert sein.
  • Die erste Position muss bei 0,0 und die letzte Position bei 1,0 liegen.

Siehe auch setColorAt() und stops().

QColor QCanvasGradient::startColor() const

Gibt die Startfarbe des Farbverlaufs oder die Farbe an der kleinsten Position zurück. Wurde die Startfarbe nicht festgelegt, wird die Standardstartfarbe Weiß (255, 255, 255) zurückgegeben.

Siehe auch setStartColor().

QCanvasGradientStops QCanvasGradient::stops() const

Gibt die Haltepunkte für diesen Gradienten zurück.

Siehe auch setStops() und setColorAt().

QCanvasBrush::BrushType QCanvasGradient::type() const

Gibt den Typ des Farbverlaufs zurück.

QCanvasGradient::operator QVariant() const

Gibt den Gradienten als QVariant zurück.

Verwandte Nicht-Mitglieder

QCanvasGradientStops

Typedef für QList<QCanvasGradientStop>.

[noexcept] bool operator!=(const QCanvasGradient &lhs, const QCanvasGradient &rhs)

Gibt true zurück, wenn sich der Gradient lhs von rhs unterscheidet; andernfalls false.

Siehe auch operator==().

QDataStream &operator<<(QDataStream &stream, const QCanvasGradient &gradient)

Schreibt die angegebene gradient in die angegebene stream und gibt eine Referenz auf die stream zurück.

Siehe auch Serialisierung von Qt-Datentypen.

QDataStream &operator<<(QDataStream &stream, const QCanvasGradientStop &stop)

Schreibt Gradient stop in den angegebenen stream und gibt eine Referenz auf stream zurück.

Siehe auch Serialisierung von Qt-Datentypen.

[noexcept] bool operator==(const QCanvasGradient &lhs, const QCanvasGradient &rhs)

Gibt true zurück, wenn der Gradient lhs gleich rhs ist; andernfalls false.

Siehe auch operator!=().

QDataStream &operator>>(QDataStream &stream, QCanvasGradient &gradient)

Liest die angegebene gradient aus der angegebenen stream und gibt eine Referenz auf die stream zurück.

Siehe auch Serialisierung von Qt-Datentypen.

QDataStream &operator>>(QDataStream &stream, QCanvasGradientStop &stop)

Liest einen Gradienten stop aus dem angegebenen stream und gibt eine Referenz auf stream zurück.

Siehe auch Serialisierung von Qt-Datentypen.

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