专业编程基础技术教程

网站首页 > 基础教程 正文

Qt的辐射渐变类QRadialGradient第1个构造函数用法

ccvgpt 2024-08-03 12:39:52 基础教程 42 ℃

Qt的渐变样式QRadialGradient, 分为简单辐射渐变和扩展辐射渐变。辐射渐变与线性渐变相同的地方,在于两者都有两个点,作为渐变的起点和终点,不同点是线性渐变在起点-终点的梯度上是线性的,而辐射渐变则有弧线的效果。

渐变样式的作用,在于给画刷QBrush类提供一种填充样式。

Qt的辐射渐变类QRadialGradient第1个构造函数用法

先看辐射渐变类的构造函数中的第一个:

QRadialGradient::QRadialGradient(qreal cx, qreal cy, qreal radius)

---Constructs a simple radial gradient with the center at (cx, cy) and the specified radius. The focal point lies at the center of the circle.

【翻译:构造一个简单的辐射渐变,中心位于(cx,cy),半径指定为radius, 焦点位于圆心处。 】

从焦点到环之间的位置,按比例设为0到1,用setColorAt(qreal position, QColor color)设置渐变色的相对位置时,就要用到这个比例值。

void Widget::paintEvent(QPaintEvent *event)

{

const int r =350;

QPainter painter(this);

painter.setRenderHint(QPainter::Antialiasing);

QRadialGradient radialGradient(0,0,r);

radialGradient.setColorAt(0.0, Qt::red);

radialGradient.setColorAt(60.0/360.0, Qt::yellow);

radialGradient.setColorAt(120.0/360.0, Qt::green);

radialGradient.setColorAt(180.0/360.0, Qt::cyan);

radialGradient.setColorAt(240.0/360.0, Qt::blue);

radialGradient.setColorAt(300.0/360.0, Qt::magenta);

radialGradient.setColorAt(1.0, Qt::red);


painter.translate(r+50, r+50);

QBrush brush(radialGradient);

painter.setPen(Qt::NoPen);

painter.setBrush(brush);

painter.drawEllipse(QPoint(0, 0), r, r);

}


最近发表
标签列表