Я бегу ubuntu 11.04. Это то, что мой прогресс бары выглядеть следующим образом:Изменить цвет QProgressBar
Я показываю бруски прогресса в окне пакетной обработки (по одному на пакетный пункт) и хотел бы использовать их в качестве индикатора состояния (зеленый, а все хорошо, красный в случае ошибок, ...).
Я пробовал несколько предложений, в том числе сделанные this почти идентичный вопрос. К сожалению, я не смог заставить его работать, и documentation по настройке 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);
}
...
Я также попробовал вариант предложил here, но это не помогло.
Документация на '' palette' и setPalette' говорит: * Внимание: Не используйте эту функцию в сочетании с таблицами стилей Qt. Возможно, это проблема? В этом случае вы можете попробовать 'style' и' setStyle'. Но это только моя догадка. – Frg
Какая у вас ОС? Как выглядит индикатор выполнения в нем? – Dmitriy
Если вы используете таблицы стилей, вы должны установить * все * не только один элемент. Покажите нам таблицу стилей, которую вы пробовали. – koan