我正在運行ubuntu 11.04。這就是我的進度條的樣子:更改QProgressBar的顏色
我顯示在批處理窗口中的進度條(每批項目之一),並想用它們作爲一個狀態指示燈(綠色,而所有的進展順利,發生錯誤時爲紅色,......)。
我已經嘗試了幾個建議,其中包括this幾乎相同的問題。不幸的是,我無法讓它工作,並且定製QProgressBars的documentation也無法幫助我,所以我會非常感謝任何關於我做錯了什麼的建議。
我已經按照建議子類化了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 2012-02-20 22:28:05
什麼是您的操作系統?進度條如何看起來像它? – Dmitriy 2012-02-20 22:53:18
如果你使用樣式表,那麼你必須設置*所有*不只是一個單一的元素。向我們展示您嘗試過的樣式表。 – koan 2012-02-20 23:40:26