ste*_*eps 13 c++ qt 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);
}
...
Run Code Online (Sandbox Code Playgroud)
我也试过这里建议的版本,但这也没有帮助.
cas*_*s33 12
它尝试了这个:
QProgressBar {
border: 2px solid grey;
border-radius: 5px;
background-color: #FF0000;
}
QProgressBar::chunk {
background-color: #05B8CC;
width: 20px;
}
Run Code Online (Sandbox Code Playgroud)
作为progressBar的styleSheet,我得到了这个 
因此很容易将条形图的背景更改为您想要的颜色,您可以自己显示文本setFormat().它适合你吗?
小智 6
在我的情况下,使用“突出显示”颜色角色可以解决问题(使用 Plastique 风格)。
QPalette p = palette();
p.setColor(QPalette::Highlight, Qt::green);
setPalette(p);
Run Code Online (Sandbox Code Playgroud)
我也遇到了这个问题,但在此网站的帮助下,我找到了一种方法:http : //thesmithfam.org/blog/2009/10/13/cool-qprogressbar-stylesheet/
但我只想更改颜色,而不是进度条本身。所以我摆脱了第一行,然后稍微改变了第二行。
终于我得到了想要的东西。
首先这样做:
QString danger = "QProgressBar::chunk {background: QLinearGradient( x1: 0, y1: 0, x2: 1, y2: 0,stop: 0 #FF0350,stop: 0.4999 #FF0020,stop: 0.5 #FF0019,stop: 1 #FF0000 );border-bottom-right-radius: 5px;border-bottom-left-radius: 5px;border: .px solid black;}";
QString safe= "QProgressBar::chunk {background: QLinearGradient( x1: 0, y1: 0, x2: 1, y2: 0,stop: 0 #78d,stop: 0.4999 #46a,stop: 0.5 #45a,stop: 1 #238 );border-bottom-right-radius: 7px;border-bottom-left-radius: 7px;border: 1px solid black;}";
Run Code Online (Sandbox Code Playgroud)
现在您要做的就是:
if(ui->progressbar->value()<80)
ui->progressbar->setStyleSheet(danger);
else
ui->progressbar->setStyleSheet(safe);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
23831 次 |
| 最近记录: |