我正在运行Ubuntu 11.04。这是我的进度条外观:
我在批处理窗口中显示进度条(每个批处理项一个),并希望将其用作状态指示器(全部进行良好时为绿色,出现错误时为红色等)。
我尝试了几个建议,包括对几乎相同问题的这个问题所做的建议。不幸的是,我无法使它工作,也不能从自定义QProgressBars的文档中得到帮助,因此如果您能提供任何有关我做错了什么的建议,我将非常感激。
我已经按建议对QProgressBar进行了子类化,并尝试使用样式表和调色板(但不同时使用)。使用样式表,我无法使其看起来与常规进度条一样。更改颜色确实是我想要做的所有事情,所以我认为使用调色板而不是样式表应该更容易实现,但是使用调色板根本没有发生任何事情。
这是我尝试过的调色板版本之一:
![progress bar](https://istack.dev59.com/ORPAj.webp)
我尝试了几个建议,包括对几乎相同问题的这个问题所做的建议。不幸的是,我无法使它工作,也不能从自定义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);
}
...
我也尝试了这里建议的版本,但那也没有帮助。
palette
和setPalette
的文档中写道:警告:不要与 Qt 样式表一起使用此函数。也许这就是问题所在?如果是这样,您可以尝试使用style
和setStyle
。但这只是我的猜测。 - Frg