Auf dieser Seite

QCanvasGradient Class

„QCanvasGradient“ ist die Basisklasse für alle Farbverlaufspinsel von „ QCanvasPainter “. Mehr dazu...

Überschrift: #include <QCanvasGradient>
CMake: find_package(Qt6 REQUIRED COMPONENTS CanvasPainter)
target_link_libraries(mytarget PRIVATE Qt6::CanvasPainter)
Seit: Qt 6.11
Vererbt an:

QCanvasBoxGradient, QCanvasConicalGradient, QCanvasLinearGradient und QCanvasRadialGradient

Öffentliche Funktionen

QCanvasGradient()
(since 6.12) void addColorStop(qreal position, QColor color)
QColor endColor() const
void setColorAt(qreal position, QColor color)
void setEndColor(QColor color)
(since 6.12) void setImage(const QCanvasImage &image, int index = 0)
void setStartColor(QColor color)
void setStops(const QCanvasGradientStops &stops)
QColor startColor() const
QCanvasGradientStops stops() const
QCanvasBrush::BrushType type() const
operator QCanvasBrush() const &
operator QVariant() const

Geschützte Funktionen

QCanvasGradient(const QCanvasGradient &)
QCanvasGradient(QCanvasGradient &&)
~QCanvasGradient()
QCanvasGradient &operator=(QCanvasGradient &&)
QCanvasGradient &operator=(const QCanvasGradient &)
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)

Ausführliche Beschreibung

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

Wenn bei „ setStartColor “, „ setEndColor “, „ setColorAt “ oder „ setStops “ keine Farbstufen angegeben werden, wird der Farbverlauf als transparentes Schwarz (0,0,0,0) dargestellt. Wird nur eine einzige Farbstufe angegeben, wird der Farbverlauf mit dieser Farbe gefüllt.

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

  • Bei maximal 2 Stufen werden die Farben als 2 „vec4“-Uniforms an den Shader übergeben. Dadurch lassen sich 2-Stufen-Farbverläufe sehr leistungsstark animieren, ohne dass dazwischen zusätzliche Schritte erforderlich sind.
  • Bei mehr als zwei Stoppstellen werden die Farben als eindimensionale Textur an den Shader übergeben. Standardmäßig beträgt die Texturgröße 1 × 256 Pixel, was hinsichtlich Qualität und Leistung optimiert ist. Die Texturen werden zwischengespeichert. Wenn sich also die Stopps oder Farben eines Farbverlaufs nicht ändern, kann die vorherige Textur wiederverwendet werden, selbst wenn sich andere Eigenschaften des Farbverlaufs (wie Position, Winkel usw.) ändern. Obwohl die Animation von Farbverläufen mit mehreren Stopps schnell ist, führt sie zu Textur-Uploads; überlege daher, ob sich der Aufwand lohnt.

Es gibt einige Umgebungsvariablen zur Steuerung der Texturverwendung bei Farbverläufen:

  • QCPAINTER_DISABLE_TEXTURE_USAGE_TRACKING – Standardmäßig wird die Nutzung von Farbverlaufstexturen überwacht und unter der maximalen Anzahl gehalten. Setzen Sie diese Umgebungsvariable, um die Überwachung zu deaktivieren und alle Farbverlaufstexturen im Speicher zu behalten.
  • QCPAINTER_MAX_TEXTURES – Standardmäßig beträgt die maximale Anzahl an Texturen „ 1024 “. Setze diese Umgebungsvariable auf die gewünschte maximale Texturanzahl. Die derzeit nicht verwendeten temporären Verlaufstexturen werden automatisch entfernt, sobald die maximale Anzahl erreicht ist.

    Hinweis: Dies hat keine Auswirkung, wenn die Erfassung der Texturverwendung deaktiviert wurde.

Dokumentation der Member-Funktionen

[delete] QCanvasGradient::QCanvasGradient()

Erstellt standardmäßig eine Instanz von ` QCanvasGradient`. Diese Funktion wurde gelöscht.

[constexpr noexcept protected default] QCanvasGradient::QCanvasGradient(const QCanvasGradient &)

Erstellt eine Instanz von „ QCanvasGradient “ durch Kopieren.

[constexpr noexcept protected default] QCanvasGradient::QCanvasGradient(QCanvasGradient &&)

Erzeugt eine Instanz von ` QCanvasGradient`.

[constexpr noexcept protected default] QCanvasGradient::~QCanvasGradient()

Löscht die Instanz von „ QCanvasGradient “.

[since 6.12] void QCanvasGradient::addColorStop(qreal position, QColor color)

Erzeugt einen Haltepunkt an der angegebenen position mit dem angegebenen color. Der angegebene position muss im Bereich von 0 bis 1 liegen.

Diese Methode wird zur Kompatibilität mit HTML- CanvasGradient bereitgestellt. Sie entspricht der Funktion ` setColorAt()`.

Diese Funktion wurde in Qt 6.12 eingeführt.

Siehe auch setStops() und stops().

QColor QCanvasGradient::endColor() const

Gibt die Endfarbe des Farbverlaufs oder die Farbe an der Position mit dem größten Wert zurück. Wenn keine Farbverläufe festgelegt wurden, wird transparentes Schwarz (0, 0, 0, 0) zurückgegeben.

Siehe auch ` setEndColor()`.

void QCanvasGradient::setColorAt(qreal position, QColor color)

Erzeugt einen Haltepunkt an der angegebenen Koordinate ` position ` mit dem angegebenen Wert ` color`. Der angegebene Wert ` position ` muss im Bereich von 0 bis 1 liegen.

Siehe auch setStops() und stops().

void QCanvasGradient::setEndColor(QColor color)

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

Siehe auch endColor().

[since 6.12] void QCanvasGradient::setImage(const QCanvasImage &image, int index = 0)

Verwendet die Funktion „ image “ als Gradientenquelle bei der y-Koordinate index. Dies ist eine Alternative zur Festlegung der Gradientenstopps, beispielsweise mit den Funktionen „ setStops()“ oder „ setColorAt()“. Die erwartete Standardbreite des Bildes beträgt 256 Pixel, kann jedoch durch die Definition von QCPAINTER_GRADIENT_SIZE angepasst werden. Der Parameter „index“ ist optional und wird nicht benötigt, wenn die Höhe des Bildes 1 Pixel beträgt. Der Maximalwert von „index“ sollte der Bildhöhe minus 1 entsprechen.

Mögliche Gründe, diese Methode anstelle der Festlegung von Stopps zu verwenden:

  • Etwas schneller zu erstellen, da Stoppwerte nicht geparst werden müssen. Außerdem können mit ` index` mehrere Farbverläufe in einem einzigen Bild eingebunden werden.
  • Die Möglichkeit, einen Farbverlauf direkt aus dem Design oder Bild zu verwenden, anstatt ihn in eine Reihe von Stoppunkten umzuwandeln.
  • Die Möglichkeit, nichtlineare Farbverläufe zu verwenden, wie z. B. eine Gaußsche Kurve.

Hinweis: Wenn sowohl die Stopps als auch das Bild festgelegt wurden, werden die Stopps verwendet.

Hier ist ein einfaches Beispiel für die Verwendung eines 256x1 -Farbverlaufsbildes:

Schmaler horizontaler Streifen, der von Blau über Rot bis Orange verläuft
Quadrat mit einem radialen Farbverlauf, der von einem weißen Zentrum zu einem roten und violetten Rand verläuft
static QImage image(":/gradient1.png");
QCanvasImage gradImage = p->addImage(image);
QRectF rect(0, 0, 200, 200);
QCanvasRadialGradient rg(rect.center(), 20, 150);
rg.setImage(gradImage);
p->setFillStyle(rg);
p->fillRect(rect);

Diese Funktion wurde in Qt 6.12 eingeführt.

Siehe auch setStops().

void QCanvasGradient::setStartColor(QColor color)

Setzt die Startfarbe des Farbverlaufs auf „ color “. Dies entspricht dem Aufruf von ` setColorAt()` mit der Position „ 0 “.

Siehe auch ` startColor()`.

void QCanvasGradient::setStops(const QCanvasGradientStops &stops)

Ersetzt die aktuelle Liste der Haltepunkte durch die angegebene Liste „ stops “.

Für die Stopp-Liste gelten folgende Regeln:

  • Die Liste muss mindestens 2 Haltepunkte enthalten.
  • Die Positionen der Stopps müssen im Bereich von 0 bis 1 liegen und so sortiert sein, dass der niedrigste Stopp an erster Stelle steht.
  • 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. Wenn keine Farbverläufe festgelegt wurden, wird transparentes Schwarz (0, 0, 0, 0) 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 QCanvasBrush() const &

Gibt den Farbverlauf als ` QCanvasBrush` zurück.

Diese Funktion überlädt `QCanvasGradient::operator QCanvasBrush() &&`.

QCanvasGradient::operator QVariant() const

Gibt den Gradienten als ` QVariant` zurück.

[constexpr noexcept protected default] QCanvasGradient &QCanvasGradient::operator=(QCanvasGradient &&)

Weist „ other “ dieser „ QCanvasGradient “-Instanz zu.

[constexpr noexcept protected default] QCanvasGradient &QCanvasGradient::operator=(const QCanvasGradient &)

Weist dieser QCanvasGradient -Instanz die other zu.

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 vonQt-Datentypen“.

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

Schreibt die Gradienten stop en in die angegebene stream und gibt einen Verweis auf die stream zurück.

Siehe auch „Serialisierung vonQt-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 den angegebenen ` gradient ` aus dem angegebenen ` stream ` und gibt eine Referenz auf den ` stream` zurück.

Siehe auch „Serialisierung vonQt-Datentypen“.

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

Liest einen Farbverlauf stop aus der angegebenen URL stream und gibt eine Referenz auf stream zurück.

Siehe auch „Serialisierung vonQt-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.