QCanvasBoxShadow Class
QCanvasBoxShadow ist ein Pinsel zum Malen von rechteckigen Schatten/Glühen. Mehr...
| Kopfzeile: | #include <QCanvasBoxShadow> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS CanvasPainter)target_link_libraries(mytarget PRIVATE Qt6::CanvasPainter) |
| Seit: | Qt 6.11 |
| Erbt: | QCanvasBrush |
| Status: | Technische Vorschau |
Öffentliche Funktionen
| QCanvasBoxShadow() | |
| QCanvasBoxShadow(const QRectF &rect, float radius = 0.0f, float blur = 0.0f, const QColor &color = QColorConstants::Black) | |
| QCanvasBoxShadow(float x, float y, float width, float height, float radius = 0.0f, float blur = 0.0f, const QColor &color = QColorConstants::Black) | |
| float | blur() const |
| float | bottomLeftRadius() const |
| float | bottomRightRadius() const |
| QRectF | boundingRect() const |
| QColor | color() const |
| float | radius() const |
| QRectF | rect() const |
| void | setBlur(float blur) |
| void | setBottomLeftRadius(float radius) |
| void | setBottomRightRadius(float radius) |
| void | setColor(const QColor &color) |
| void | setRadius(float radius) |
| void | setRect(float x, float y, float width, float height) |
| void | setRect(const QRectF &rect) |
| void | setSpread(float spread) |
| void | setTopLeftRadius(float radius) |
| void | setTopRightRadius(float radius) |
| float | spread() const |
| float | topLeftRadius() const |
| float | topRightRadius() const |
Verwandte Nicht-Mitglieder
| 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) |
Detaillierte Beschreibung
QCanvasBoxShadow ist ein abgerundeter Rechteckpinsel, auf den eine Unschärfe angewendet wird. Die Leistung von QCanvasBoxShadow ist viel besser als ein allgemeiner Schatten, der einen unscharfen Schatten/Glühen eines beliebig geformten Elements erzeugt, da er einen SDF-Ansatz verwendet.
Die Eigenschaften von QCanvasBoxShadow sind ähnlich wie die von CSS Box-Shadow, mit Radius, Spreizung, Unschärfe und Farbwerten. Die Rendering-Ausgabe entspricht ebenfalls dem CSS-Box-Shadow, mit wenigen bemerkenswerten Unterschieden, um den QCanvasBoxShadow so leistungsstark wie möglich zu machen. Die Unschärfe wird im Shader mathematisch berechnet, anstatt die Gaußsche Unschärfe zu verwenden, die CSS-Box-Shadow-Implementierungen oft nutzen. Dadurch sieht der Schatten etwas anders aus, vor allem wenn die Unschärfe mehr als die Hälfte der Schattenbreite/-höhe beträgt.
Hier sind Screenshots zum Vergleich der Rendering-Ausgabe von QCanvasBoxShadow und CSS box-shadow im Chrome-Browser. Sie zeigen, wie sich Unschärferadien von 0, 10, 20 und 40 Pixeln auf kleinere Schatten auswirken.
CSS-Schachtelschatten:

QCanvasBoxShadow:

Member Function Dokumentation
QCanvasBoxShadow::QCanvasBoxShadow()
Konstruiert einen Standard-Box-Schatten. Die Position des Rahmenschattens ist (0, 0) und die Größe (100, 100). Der Eckenradius des Schattens ist 0.0 und der Weichzeichner 0.0. Die Schattenfarbe ist Qt::black.
QCanvasBoxShadow::QCanvasBoxShadow(const QRectF &rect, float radius = 0.0f, float blur = 0.0f, const QColor &color = QColorConstants::Black)
Konstruiert einen Boxschatten. Die Position und Größe des Boxschattens wird durch rect definiert. Der Eckenradius des Schattens ist radius und der Weichzeichner blur. Die Schattenfarbe ist color.
QCanvasBoxShadow::QCanvasBoxShadow(float x, float y, float width, float height, float radius = 0.0f, float blur = 0.0f, const QColor &color = QColorConstants::Black)
Konstruiert einen Boxschatten. Die Position des Rahmenschattens ist x, y und die Größe width, height. Der Eckenradius des Schattens ist radius und der Weichzeichner blur. Die Schattenfarbe ist color.
float QCanvasBoxShadow::blur() const
Gibt die Unschärfe der Schattenbox zurück.
Siehe auch setBlur().
float QCanvasBoxShadow::bottomLeftRadius() const
Gibt den unteren linken Radius der Schattenbox zurück. Wenn dieser Wert -1 ist, wird beim Malen des Schattens der Wert von radius() für diese Ecke verwendet. Der Standardwert ist -1.
Siehe auch setBottomLeftRadius().
float QCanvasBoxShadow::bottomRightRadius() const
Gibt den unteren rechten Radius der Schattenbox zurück. Wenn dieser Wert -1 ist, wird beim Malen des Schattens der Wert von radius() für diese Ecke verwendet. Der Standardwert ist -1.
Siehe auch setBottomRightRadius().
QRectF QCanvasBoxShadow::boundingRect() const
Gibt den vom Schatten bedeckten Bereich zurück. Dabei werden die Schatten rect(), blur() und spread() berücksichtigt. Wenn Sie die Hilfsmethode QCanvasPainter::drawBoxShadow() nicht verwenden wollen, können Sie diese verwenden, um z.B. QCanvasPainter::rect() in 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().
float QCanvasBoxShadow::radius() const
Gibt den Radius der Schattenbox zurück.
Siehe auch setRadius().
QRectF QCanvasBoxShadow::rect() const
Gibt den rechteckigen Bereich der Schattenbox zurück.
Siehe auch setRect().
void QCanvasBoxShadow::setBlur(float blur)
Legt die Unschärfe des Schattens auf blur in Pixeln fest. Der Standardwert ist 0.0 und bedeutet keine Unschärfe.
Siehe auch blur().
void QCanvasBoxShadow::setBottomLeftRadius(float radius)
Legt den Radius der linken unteren Ecke auf radius fest. Der Standardwert ist -1, was bedeutet, dass für diese Ecke kein individueller Radius festgelegt wurde und stattdessen der allgemeine radius() verwendet wird.
Siehe auch bottomLeftRadius().
void QCanvasBoxShadow::setBottomRightRadius(float radius)
Legt den Radius der rechten unteren Ecke auf radius fest. Der Standardwert ist -1, was bedeutet, dass für diese Ecke kein individueller Radius festgelegt wurde und stattdessen der allgemeine radius() verwendet wird.
Siehe auch bottomRightRadius().
void QCanvasBoxShadow::setColor(const QColor &color)
Setzt die Schattenfarbe auf color. Der Standardwert ist Schwarz mit voller Deckkraft.
Siehe auch color().
void QCanvasBoxShadow::setRadius(float radius)
Legt den Radius der Schattenecken auf radius in Pixeln fest. Der Standardwert ist 0.0, was keinen Radius bedeutet.
Siehe auch radius().
void QCanvasBoxShadow::setRect(float x, float y, float width, float height)
Setzt den rechteckigen Bereich der Schattenbox auf (x, y, width, height).
Siehe auch rect().
void QCanvasBoxShadow::setRect(const QRectF &rect)
Setzt den rechteckigen Bereich der Schattenbox auf rect.
Dies ist eine überladene Funktion.
void QCanvasBoxShadow::setSpread(float spread)
Legt den Schattenabstand auf spread in Pixeln fest. Der Standardwert ist 0.0, d. h. keine Spreizung.
Siehe auch spread().
void QCanvasBoxShadow::setTopLeftRadius(float radius)
Legt den Radius der linken oberen Ecke auf radius fest. Der Standardwert ist -1, was bedeutet, dass für diese Ecke kein individueller Radius festgelegt wurde und stattdessen der allgemeine radius() verwendet wird.
Siehe auch topLeftRadius().
void QCanvasBoxShadow::setTopRightRadius(float radius)
Legt den Radius der rechten oberen Ecke auf radius fest. Der Standardwert ist -1, was bedeutet, dass für diese Ecke kein individueller Radius festgelegt wurde und stattdessen der allgemeine radius() verwendet wird.
Siehe auch topRightRadius().
float QCanvasBoxShadow::spread() const
Gibt die Ausdehnung der Schattenbox zurück.
Siehe auch setSpread().
float QCanvasBoxShadow::topLeftRadius() const
Gibt den oberen linken Radius der Schattenbox zurück. Wenn dieser Wert -1 ist, wird beim Malen des Schattens der Wert von radius() für diese Ecke verwendet. Der Standardwert ist -1.
Siehe auch setTopLeftRadius().
float QCanvasBoxShadow::topRightRadius() const
Gibt den oberen rechten Radius der Schattenbox zurück. Wenn dieser Wert -1 ist, wird beim Malen des Schattens der Wert von radius() für diese Ecke 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 Boxschatten 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 von Qt-Datentypen.
[noexcept] bool operator==(const QCanvasBoxShadow &lhs, const QCanvasBoxShadow &rhs)
Gibt true zurück, wenn der Boxschatten lhs gleich rhs ist; andernfalls false.
Siehe auch operator!=().
QDataStream &operator>>(QDataStream &stream, QCanvasBoxShadow &shadow)
Liest die angegebene shadow aus der angegebenen stream und gibt eine Referenz auf die 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.