Изменить цвет QProgressBar
Я использую Ubuntu 11.04. Вот как выглядят мои индикаторы выполнения:
Я показываю индикаторы выполнения в окне пакетной обработки (по одному на элемент партии) и хотел бы использовать их в качестве индикатора состояния (зеленый, когда все идет хорошо, красный в случае ошибок, ...).
Я перепробовал несколько предложений, в том числеэто почти идентичный вопрос. К сожалению, я не мог заставить это работать идокументация Настройка QProgressBars мне тоже не помогает, поэтому я был бы очень признателен за любые предложения относительно того, что я делаю неправильно.
Я подклассифицировал QProgressBar в соответствии с предложением и попытался использовать таблицы стилей и палитру (не одновременно, а в качестве альтернативы). С таблицами стилей я не могу заставить его выглядеть как обычные индикаторы выполнения. Изменение цвета - это действительно все, что я хочу сделать, поэтому я решил, что сделать это будет намного проще, используя палитру вместо таблицы стилей, но с палитрой ничего не происходит вообще.
Вот одна из версий, которые я пробовал для палитры:
#include "myprogressbar.h"
#include <QtGui/QPalette>
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);
}
...
Я также попробовал предложенную версиюВот, но это тоже не помогло.