Измените цвет a QProgressBar

Я использую ubuntu 11.04. Это так выглядят мои индикаторы выполнения:

progress bar

Я показываю индикаторы выполнения в окне пакетной обработки (по одному для каждого элемента пакета) и хочу использовать их в качестве индикатора состояния (зеленый, когда все идет хорошо, красный в случае ошибки, ...).

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

Я создал подклассы QProgressBar, как было предложено, и попытался использовать таблицы стилей, а также палитру (не одновременно, а в качестве альтернативы). С помощью таблиц стилей я не могу сделать их похожими на обычные индикаторы выполнения. На самом деле, изменить цвет - это все, что я хочу сделать, поэтому я решил, что это должно быть намного проще сделать, используя палитру вместо таблицы стилей, но с палитрой вообще ничего не происходит.

Вот одна из версий, которые я пробовал для палитры:

#include "myprogressbar.h"

#include 

MyProgressBar::MyProgressBar(QWidget *parent) :
    QProgressBar(parent)
{}

void MyProgressBar::onProgress(int value, int maximum, QString phase)
{
    setMaximum(maximum);
    setValue(value);
    setFormat(phase);

    QPalette p = this->palette();
    p.setColor(QPalette::Highlight, QColor(Qt::green));
    this->setPalette(p);
}

...

Я также пробовал версию, предложенную здесь , но это тоже не помогло.

13
задан feedc0de 1 May 2018 в 16:55
поделиться