Как нарисовать линейную градиентную дугу с 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);}
Это прекрасно работает для рисования круглого индикатора, но у меня проблемы с цветом линейного градиента. Я пытался создатьQPen
сQLinearGradient
объект, и я попытался установитьQPainter
прикасаться кQLinearGradient
объект, но ни одна стратегия не сработала. Можно ли нарисовать дугу сQPainter
что имеет линейный градиент цвета?