本页内容

QCanvasRadialGradient Class

QCanvasRadialGradient 是一款用于绘制放射状渐变的画笔。更多内容...

标题: #include <QCanvasRadialGradient>
CMake: find_package(Qt6 REQUIRED COMPONENTS CanvasPainter)
target_link_libraries(mytarget PRIVATE Qt6::CanvasPainter)
自: Qt 6.11
继承自: QCanvasGradient

公共函数

QCanvasRadialGradient()
QCanvasRadialGradient(QPointF centerPosition, qreal innerRadius, qreal outerRadius)
(since 6.12) QCanvasRadialGradient(QPointF innerCenterPosition, qreal innerRadius, QPointF outerCenterPosition, qreal outerRadius)
QCanvasRadialGradient(qreal centerX, qreal centerY, qreal innerRadius, qreal outerRadius)
(since 6.12) QCanvasRadialGradient(qreal innerCenterX, qreal innerCenterY, qreal innerRadius, qreal outerCenterX, qreal outerCenterY, qreal outerRadius)
QCanvasRadialGradient(const QCanvasRadialGradient &)
QCanvasRadialGradient(QCanvasRadialGradient &&)
~QCanvasRadialGradient()
QPointF centerPosition() const
(since 6.12) QPointF innerCenterPosition() const
qreal innerRadius() const
(since 6.12) QPointF outerCenterPosition() const
qreal outerRadius() const
void setCenterPosition(qreal x, qreal y)
void setCenterPosition(QPointF center)
(since 6.12) void setInnerCenterPosition(qreal x, qreal y)
(since 6.12) void setInnerCenterPosition(QPointF center)
void setInnerRadius(qreal radius)
(since 6.12) void setOuterCenterPosition(qreal x, qreal y)
(since 6.12) void setOuterCenterPosition(QPointF center)
void setOuterRadius(qreal radius)
void swap(QCanvasRadialGradient &other)
QCanvasRadialGradient &operator=(QCanvasRadialGradient &&)
QCanvasRadialGradient &operator=(const QCanvasRadialGradient &)

详细说明

径向渐变在起始点和终点之间对颜色进行插值,从而生成一个圆形渐变。该渐变通过centerPosition()、outerRadius()和innerRadius()进行控制。

四个正方形,从中心点向外辐射出径向渐变,颜色和中心偏移量各不相同

以下是一个简单示例:

一个正方形,其中心为黄色,向外呈放射状渐变,经红色过渡至蓝色边缘
QRectF rect1(0, 0, 200, 200);
QCanvasRadialGradient rg(rect1.center(), 0, 100);
rg.setColorAt(0.0, "#fdbb2d");
rg.setColorAt(0.6, "#b21f1f");
rg.setColorAt(1.0, "#1a2a6c");
p->setFillStyle(rg);
p->fillRect(rect1);

成员函数文档

QCanvasRadialGradient::QCanvasRadialGradient()

创建一个默认的径向渐变。渐变中心位置为 (0, 0)。渐变的外半径为 100.0,内半径为 0.0。

QCanvasRadialGradient::QCanvasRadialGradient(QPointF centerPosition, qreal innerRadius, qreal outerRadius)

创建一个径向渐变。渐变中心位置为centerPosition 。渐变内半径为innerRadius ,外半径为outerRadius 。

[since 6.12] QCanvasRadialGradient::QCanvasRadialGradient(QPointF innerCenterPosition, qreal innerRadius, QPointF outerCenterPosition, qreal outerRadius)

构建一个径向渐变。渐变内中心位置为innerCenterPosition 。渐变外中心位置为outerCenterPosition 。渐变内半径为innerRadius ,外半径为outerRadius 。

该函数于 Qt 6.12 中引入。

QCanvasRadialGradient::QCanvasRadialGradient(qreal centerX, qreal centerY, qreal innerRadius, qreal outerRadius)

创建一个径向渐变。渐变中心位置为 (centerX,centerY)。渐变内半径为innerRadius ,外半径为outerRadius 。

[since 6.12] QCanvasRadialGradient::QCanvasRadialGradient(qreal innerCenterX, qreal innerCenterY, qreal innerRadius, qreal outerCenterX, qreal outerCenterY, qreal outerRadius)

构建一个径向渐变。渐变内心的位置为 (innerCenterX,innerCenterY)。渐变外心的位置为 (outerCenterX,outerCenterY)。渐变内半径为innerRadius ,外半径为outerRadius 。

该函数在 Qt 6.12 中引入。

[constexpr noexcept default] QCanvasRadialGradient::QCanvasRadialGradient(const QCanvasRadialGradient &)

复制并构造一个QCanvasRadialGradient 的实例。

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

通过Move构造一个QCanvasRadialGradient 的实例。

[constexpr noexcept default] QCanvasRadialGradient::~QCanvasRadialGradient()

销毁QCanvasRadialGradient 的实例。

QPointF QCanvasRadialGradient::centerPosition() const

返回径向渐变的中心点。这与outerCenterPosition() 的效果相同。

另请参阅 setCenterPosition()。

[since 6.12] QPointF QCanvasRadialGradient::innerCenterPosition() const

返回径向渐变的内中心点。

该函数在 Qt 6.12 中引入。

另请参阅 setInnerCenterPosition()。

qreal QCanvasRadialGradient::innerRadius() const

返回径向渐变的内半径。

另请参阅 ` setInnerRadius()`。

[since 6.12] QPointF QCanvasRadialGradient::outerCenterPosition() const

返回径向渐变的外侧中心点。

该函数在 Qt 6.12 中引入。

另请参阅 setOuterCenterPosition()。

qreal QCanvasRadialGradient::outerRadius() const

返回径向渐变的外半径。

另请参阅 setOuterRadius()。

void QCanvasRadialGradient::setCenterPosition(qreal x, qreal y)

将径向渐变的两个中心点分别设置为 (x,y)。因此,调用此函数后,渐变将呈对称分布(内圈和外圈的位置相同)。

另请参阅 centerPosition()。

void QCanvasRadialGradient::setCenterPosition(QPointF center)

将径向渐变的两个中心点均设置为center 。因此调用此函数后,渐变将呈对称分布(内侧和外侧的位置相同)。

这是一个重载函数。

[since 6.12] void QCanvasRadialGradient::setInnerCenterPosition(qreal x, qreal y)

将径向渐变的内中心点设置为 (x,y)。

该函数于 Qt 6.12 中引入。

另请参阅 innerCenterPosition()。

[since 6.12] void QCanvasRadialGradient::setInnerCenterPosition(QPointF center)

将径向渐变的内中心点设置为center 。

这是一个重载函数。

该函数在 Qt 6.12 中引入。

void QCanvasRadialGradient::setInnerRadius(qreal radius)

将径向渐变的内半径设置为radius 。起始颜色将从内半径处开始绘制,以内中心位置为起点。默认内半径为0.0 ,这意味着渐变直接从内中心位置开始。

另请参阅 innerRadius()。

[since 6.12] void QCanvasRadialGradient::setOuterCenterPosition(qreal x, qreal y)

将径向渐变的外侧中心点设置为 (x,y)。

该函数在 Qt 6.12 中引入。

另请参阅 outerCenterPosition()。

[since 6.12] void QCanvasRadialGradient::setOuterCenterPosition(QPointF center)

将径向渐变的外侧中心点设置为center 。

这是一个重载函数。

该函数自 Qt 6.12 起引入。

void QCanvasRadialGradient::setOuterRadius(qreal radius)

将径向渐变的外半径设置为radius 。结束色将从外侧中心位置向该半径方向绘制。

另请参阅 outerRadius()。

[noexcept] void QCanvasRadialGradient::swap(QCanvasRadialGradient &other)

将此渐变与other 互换。此操作速度非常快,且绝不会失败。

[noexcept default] QCanvasRadialGradient &QCanvasRadialGradient::operator=(QCanvasRadialGradient &&)

将other 通过Move-assigns操作赋值给此QCanvasRadialGradient 实例。

[noexcept default] QCanvasRadialGradient &QCanvasRadialGradient::operator=(const QCanvasRadialGradient &)

将other 复制并赋值给此QCanvasRadialGradient 实例。

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