在本页

QCanvasBoxGradient Class

QCanvasBoxGradient 是一种用于绘制盒状渐变的笔刷。更多

Header: #include <QCanvasBoxGradient>
CMake: find_package(Qt6 REQUIRED COMPONENTS CanvasPainter)
target_link_libraries(mytarget PRIVATE Qt6::CanvasPainter)
Qt 6.11
继承于 QCanvasGradient
状态:技术预览版

公共函数

QCanvasBoxGradient()
QCanvasBoxGradient(const QRectF &rect, float feather, float radius = 0.0f)
QCanvasBoxGradient(float x, float y, float width, float height, float feather, float radius = 0.0f)
float feather() const
float radius() const
QRectF rect() const
void setFeather(float feather)
void setRadius(float radius)
void setRect(float x, float y, float width, float height)
void setRect(const QRectF &rect)

详细说明

方框渐变在起点和终点之间插值颜色,形成圆角矩形渐变。通过setRadius() 和setFeather() 可以控制渐变的圆度和柔和度。

下面是一个简单的示例:

QRectF rect(20, 20, 160, 160);
QCanvasBoxGradient bg(rect, 20, 50);
bg.setColorAt(0.0, "#1a2a6c");
bg.setColorAt(0.2, "#fdbb2d");
bg.setColorAt(1.0, QColorConstants::Transparent);
p->setFillStyle(bg);
p->fillRect(rect);

注意: 当使用 QCanvasBoxGradient 绘制圆形矩形时,通常使用QCanvasPainter::rect() 比QCanvasPainter::roundRect() 更好,因为圆度来自画笔而不是路径。这样可以避免创建额外的顶点,因此效果更好。

成员函数文档

QCanvasBoxGradient::QCanvasBoxGradient()

构建默认的方框渐变。梯度位置为 (0,0),大小为 (100, 100) 梯度羽化为 10.0。渐变半径为 0.0。渐变起始颜色为白色(255, 255, 255),结束颜色为透明黑色(0, 0, 0, 0)。

QCanvasBoxGradient::QCanvasBoxGradient(const QRectF &rect, float feather, float radius = 0.0f)

构建盒状渐变。渐变的位置和大小为rect 。渐变羽化为feather 。渐变半径为radius 。渐变起始颜色为白色(255, 255, 255),结束颜色为透明黑色(0, 0, 0, 0)。

QCanvasBoxGradient::QCanvasBoxGradient(float x, float y, float width, float height, float feather, float radius = 0.0f)

构建盒状渐变。梯度的位置是 (x,y) ,大小是 (width,height) 梯度羽化是feather 。渐变半径为radius 。渐变起始颜色为白色(255, 255, 255),结束颜色为透明黑色(0, 0, 0, 0)。

float QCanvasBoxGradient::feather() const

返回方框渐变的羽化值。

另请参见 setFeather()。

float QCanvasBoxGradient::radius() const

返回方框梯度的半径。

另请参见 setRadius()。

QRectF QCanvasBoxGradient::rect() const

返回方框渐变的矩形面积。

另请参见 setRect()。

void QCanvasBoxGradient::setFeather(float feather)

将方框渐变的羽化设置为feather

另请参阅 feather() 。

void QCanvasBoxGradient::setRadius(float radius)

将方框渐变的半径设置为radius 。最大半径是rect() 宽度或高度的一半,具体取决于哪个更小。

另请参见 radius()。

void QCanvasBoxGradient::setRect(float x, float y, float width, float height)

将方框渐变的矩形设置为位置 (x,y) 和大小 (width,height)。

另请参见 rect().

void QCanvasBoxGradient::setRect(const QRectF &rect)

将方框梯度的矩形设置为rect

这是一个重载函数。

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