Как изменить цвет Qt ProgressBar?

Я хотел бы изменить цвет моего индикатора выполнения с зеленого по умолчанию на красный. У меня есть этот код, но вид "плоский", я хотел бы добиться чего-то вроде "3D-эффекта", как на картинке ниже:

введите здесь описание изображения

Код для красного ПБ:

QPalette pal = ui->pbExtractionWidget->palette();
pal.setColor(QPalette::Normal, QColor(Qt::red));
QString danger = "QProgressBar::chunk {background: QLinearGradient( x1: 0, y1: 0, x2: 1, y2: 0,stop: 0 #FF0350,stop: 0.4999 #FF0020,stop: 0.5 #FF0019,stop: 1 #FF0000 );border-bottom-right-radius: 5px;border-bottom-left-radius: 5px;border: .px solid black;}";
 ui->pbExtractionWidget->setStyleSheet(danger);

Вот как это выглядит:

введите здесь описание изображения


person Marta Szmit    schedule 24.10.2018    source источник
comment
Это помогает? stackoverflow.com/questions/22712343/   -  person teh_raab    schedule 24.10.2018
comment
К сожалению нет   -  person Marta Szmit    schedule 24.10.2018


Ответы (1)


По этой ссылке можно настроить стиль индикатора выполнения.

По этой ссылке можно изменить цвет градиента для виджетов.

По сути, вам просто нужно правильно изменить таблицу стилей. Каждый чанк — это часть полосы прогресса.

Или используйте QPalette, который использует Base для окрашивания фона виджета. Установите его градиент правильно, а затем выполните следующие действия.

palette.setBrush( QPalette::Base, gradientVariable);
ui->pbExtractionWidget->setPalette(palette);
person JComputerScience    schedule 25.10.2018