小编Jes*_*e J的帖子

如何用Qt QPainter绘制线性渐变弧?

我正在尝试开发一个QProgressBar看起来像下图的自定义:

在此输入图像描述

我创建了一个扩展QProgressBar的类并实现了paintEvent():

void CircularProgressBar::paintEvent(QPaintEvent*) {

int progress = this->value();
int progressInDegrees = (double)(progress*360)/100;

int barWidth = 20;

QPainter painter(this);
painter.setRenderHint(QPainter::Antialiasing, true);

painter.setPen(QPen(Qt::black, barWidth, Qt::SolidLine,Qt::RoundCap));

painter.drawArc(barWidth/2, barWidth/2, this->width() - barWidth, this->height() - barWidth,
                90*16, progressInDegrees*-16);}
Run Code Online (Sandbox Code Playgroud)

这非常适合绘制圆形进度条,但是我遇到了条形线性渐变颜色的问题.我尝试QPenQLinearGradient对象创建一个,我尝试将QPainter画笔设置为一个QLinearGradient对象,但两种策略都不起作用.是否可以绘制QPainter具有线性渐变颜色的圆弧?

qt linear-gradients qpainter

8
推荐指数
1
解决办法
9086
查看次数

标签 统计

linear-gradients ×1

qpainter ×1

qt ×1