Auf dieser Seite

QCanvasBoxShadow Class

QCanvasBoxShadow ist ein Pinsel zum Malen von rechteckigen Schatten bzw. Leuchteffekten. Mehr...

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

Öffentliche Funktionen

QCanvasBoxShadow()
QCanvasBoxShadow(const QRectF &rect)
QCanvasBoxShadow(qreal x, qreal y, qreal width, qreal height)
QCanvasBoxShadow(QCanvasBoxShadow &&)
qreal blur() const
qreal bottomLeftRadius() const
qreal bottomRightRadius() const
QRectF boundingRect() const
QColor color() const
qreal radius() const
QRectF rect() const
void setBlur(qreal blur)
void setBottomLeftRadius(qreal radius)
void setBottomRightRadius(qreal radius)
void setColor(QColor color)
void setRadius(qreal radius)
void setRect(qreal x, qreal y, qreal width, qreal height)
void setRect(const QRectF &rect)
void setSpread(qreal spread)
void setTopLeftRadius(qreal radius)
void setTopRightRadius(qreal radius)
qreal spread() const
qreal topLeftRadius() const
qreal topRightRadius() const
bool operator!=(const QCanvasBoxShadow &lhs, const QCanvasBoxShadow &rhs)
QDataStream &operator<<(QDataStream &stream, const QCanvasBoxShadow &shadow)
bool operator==(const QCanvasBoxShadow &lhs, const QCanvasBoxShadow &rhs)
QDataStream &operator>>(QDataStream &stream, QCanvasBoxShadow &shadow)

Ausführliche Beschreibung

QCanvasBoxShadow ist ein Pinsel in Form eines abgerundeten Rechtecks mit Weichzeichner-Effekt. Die Leistung von QCanvasBoxShadow ist deutlich besser als die eines allgemeinen Schattens, der einen unscharfen Schatten oder Glanz für Elemente beliebiger Form erzeugt, da hier der SDF-Ansatz zum Einsatz kommt.

Die Eigenschaften von QCanvasBoxShadow ähneln denen von CSS „box-shadow“, mit Werten für Radius, Ausbreitung, Unschärfe und Farbe. Das Renderergebnis entspricht ebenfalls dem von CSS „box-shadow“, mit wenigen nennenswerten Unterschieden, um die Leistung von QCanvasBoxShadow so hoch wie möglich zu gestalten. Die Unschärfe wird mathematisch im Shader berechnet, anstatt einen Gaußschen Weichzeichner zu verwenden, wie es bei CSS-„box-shadow“-Implementierungen häufig der Fall ist. Dadurch sieht der Schatten etwas anders aus, insbesondere wenn der Unschärfegrad größer als die Hälfte der Schattenbreite bzw. -höhe wird.

Hier sind Screenshots zum Vergleich der Darstellungsergebnisse von „QCanvasBoxShadow“ und dem CSS-„box-shadow“ im Chrome-Browser. Diese zeigen, wie sich Unschärferadien von 0, 10, 20 und 40 Pixel auf kleinere Schatten auswirken.

CSS-`box-shadow`:

Reihen aus einem schwarzen Balken und einem schwarzen Punkt mit einem CSS-Box-Shadow-Weichzeichnungswert von 0, 10, 20 und 40 Pixeln

QCanvasBoxShadow:

Reihen aus einem schwarzen Balken und einem schwarzen Punkt mit einem „QCanvasBoxShadow“-Weichzeichnungswert von 0, 10, 20 und 40 Pixel

Dokumentation der Member-Funktionen

QCanvasBoxShadow::QCanvasBoxShadow()

Erzeugt einen Standard-Box-Schatten. Die Position des Box-Schattens ist (0, 0) und die Größe (100, 100). Der Eckenradius des Schattens beträgt 0.0 und die Unschärfe 0.0. Die Farbe des Schattens ist Qt::black.

[explicit] QCanvasBoxShadow::QCanvasBoxShadow(const QRectF &rect)

Erzeugt einen schwarzen Kastenschatten mit der Position „ rect “ und ohne Eckenradius oder Weichzeichnung.

QCanvasBoxShadow::QCanvasBoxShadow(qreal x, qreal y, qreal width, qreal height)

Erzeugt einen Box-Schatten mit den Positionen x und y sowie den Abmessungen width und height.

Siehe auch blur() und radius().

[constexpr noexcept default] QCanvasBoxShadow::QCanvasBoxShadow(QCanvasBoxShadow &&)

Erstellt eine Instanz von „ QCanvasBoxShadow “ mithilfe des „Move“-Konstruktors.

qreal QCanvasBoxShadow::blur() const

Gibt den Unschärfebereich der Schattenbox zurück.

Siehe auch „ setBlur()“.

qreal QCanvasBoxShadow::bottomLeftRadius() const

Gibt den Radius der unteren linken Ecke der Schattenbox zurück. Wenn dieser Wert auf „ -1 “ gesetzt ist, wird beim Zeichnen des Schattens für diese Ecke der Wert von „ radius()“ verwendet. Der Standardwert ist „ -1 “.

Siehe auch ` setBottomLeftRadius()`.

qreal QCanvasBoxShadow::bottomRightRadius() const

Gibt den Radius der unteren rechten Ecke der Schattenbox zurück. Wenn dieser Wert auf „ -1 “ gesetzt ist, wird beim Zeichnen des Schattens für diese Ecke der Wert von „ radius()“ verwendet. Der Standardwert ist „ -1 “.

Siehe auch setBottomRightRadius().

QRectF QCanvasBoxShadow::boundingRect() const

Gibt die vom Schatten abgedeckte Fläche zurück. Dabei werden die Schatten rect(), blur() und spread() berücksichtigt. Wenn Sie die Hilfsmethode QCanvasPainter::drawBoxShadow() nicht verwenden möchten, können Sie diese Funktion beispielsweise nutzen, um ein QCanvasPainter::rect() mit der richtigen Größe in den Pfad einzufügen.

Siehe auch setRect(), setBlur() und setSpread().

QColor QCanvasBoxShadow::color() const

Gibt die Farbe der Schattenbox zurück.

Siehe auch „ setColor()“.

qreal QCanvasBoxShadow::radius() const

Gibt den Radius der Schattenbox zurück.

Siehe auch „ setRadius()“.

QRectF QCanvasBoxShadow::rect() const

Gibt die Fläche der Shadowbox als Rechteck zurück.

Siehe auch „ setRect()“.

void QCanvasBoxShadow::setBlur(qreal blur)

Stellt die Schattenunschärfe auf „ blur “ in Pixeln ein. Der Standardwert ist „ 0.0 “, was bedeutet, dass keine Unschärfe vorhanden ist.

Siehe auch „ blur()“.

void QCanvasBoxShadow::setBottomLeftRadius(qreal radius)

Setzt den Radius der unteren linken Ecke auf radius. Der Standardwert ist -1, was bedeutet, dass für diese Ecke kein individueller Radius festgelegt wurde und stattdessen der allgemeine Wert radius() verwendet wird.

Siehe auch bottomLeftRadius().

void QCanvasBoxShadow::setBottomRightRadius(qreal radius)

Setzt den Radius der unteren rechten Ecke auf radius. Der Standardwert ist -1, was bedeutet, dass für diese Ecke kein individueller Radius festgelegt wurde und stattdessen der allgemeine Wert radius() verwendet wird.

Siehe auch ` bottomRightRadius()`.

void QCanvasBoxShadow::setColor(QColor color)

Legt die Schattenfarbe auf „ color “ fest. Der Standardwert ist Schwarz mit voller Deckkraft.

Siehe auch ` color()`.

void QCanvasBoxShadow::setRadius(qreal radius)

Legt den Eckenradius des Schattens auf „ radius “ in Pixeln fest. Der Standardwert ist „ 0.0 “, was bedeutet, dass kein Radius vorhanden ist.

Siehe auch „ radius()“.

void QCanvasBoxShadow::setRect(qreal x, qreal y, qreal width, qreal height)

Legt den rechteckigen Bereich der Shadowbox auf (x, y, width, height) fest.

Siehe auch rect().

void QCanvasBoxShadow::setRect(const QRectF &rect)

Setzt den Bereich des Schattenrahmens auf „ rect “.

Dies ist eine überladene Funktion.

void QCanvasBoxShadow::setSpread(qreal spread)

Legt die Schattenausbreitung auf „ spread “ in Pixeln fest. Der Standardwert ist „ 0.0 “, was bedeutet, dass keine Ausbreitung stattfindet.

Siehe auch „ spread()“.

void QCanvasBoxShadow::setTopLeftRadius(qreal radius)

Setzt den Radius der oberen linken Ecke auf radius. Der Standardwert ist -1, was bedeutet, dass für diese Ecke kein individueller Radius festgelegt wurde und stattdessen der allgemeine Wert radius() verwendet wird.

Siehe auch topLeftRadius().

void QCanvasBoxShadow::setTopRightRadius(qreal radius)

Setzt den Radius der oberen rechten Ecke auf „ radius “. Der Standardwert ist „ -1 “, was bedeutet, dass für diese Ecke kein individueller Radius festgelegt wurde und stattdessen der allgemeine Wert „ radius()“ verwendet wird.

Siehe auch topRightRadius().

qreal QCanvasBoxShadow::spread() const

Gibt die Ausdehnung der Schattenbox zurück.

Siehe auch ` setSpread()`.

qreal QCanvasBoxShadow::topLeftRadius() const

Gibt den Radius der oberen linken Ecke der Schattenbox zurück. Wenn dieser Wert auf „ -1 “ gesetzt ist, wird beim Zeichnen des Schattens für diese Ecke der Wert von „ radius()“ verwendet. Der Standardwert ist „ -1 “.

Siehe auch setTopLeftRadius().

qreal QCanvasBoxShadow::topRightRadius() const

Gibt den Radius der oberen rechten Ecke der Schattenbox zurück. Wenn dieser Wert auf „ -1 “ gesetzt ist, wird beim Zeichnen des Schattens für diese Ecke der Wert von „ radius()“ verwendet. Der Standardwert ist „ -1 “.

Siehe auch setTopRightRadius().

Verwandte Nicht-Mitglieder

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

Gibt „ true “ zurück, wenn sich der Box-Shadow-Wert lhs von rhs unterscheidet; andernfalls „ false “.

Siehe auch operator==().

QDataStream &operator<<(QDataStream &stream, const QCanvasBoxShadow &shadow)

Schreibt die angegebene „ shadow “ in die angegebene „ stream “ und gibt eine Referenz auf die „ stream “ zurück.

Siehe auch „Serialisierung vonQt-Datentypen“.

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

Gibt „ true “ zurück, wenn der Box-Shadow- lhs -Wert gleich „ rhs “ ist; andernfalls „ false “.

Siehe auch operator!=().

QDataStream &operator>>(QDataStream &stream, QCanvasBoxShadow &shadow)

Liest den angegebenen ` shadow ` aus dem angegebenen ` stream ` und gibt eine Referenz auf den ` 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.