下面是一个使用Qt实现的彩色进度条的示例代码:
#include <QApplication>
#include <QWidget>
#include <QProgressBar>
#include <QTimer>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QWidget *window = new QWidget;
window->setWindowTitle("Colorful Progress Bar");
QProgressBar *progressBar = new QProgressBar(window);
progressBar->setGeometry(30, 30, 200, 25);
progressBar->setRange(0, 100);
progressBar->setTextVisible(false);
QTimer *timer = new QTimer(window);
QObject::connect(timer, &QTimer::timeout, [=]() {
static int value = 0;
value = (value + 1) % 101;
progressBar->setValue(value);
if (value <= 33) {
progressBar->setStyleSheet("QProgressBar { background-color: #FF0000; } QProgressBar::chunk { background-color: #FFD700; }");
} else if (value <= 66) {
progressBar->setStyleSheet("QProgressBar { background-color: #00FF00; } QProgressBar::chunk { background-color: #FF00D7; }");
} else {
progressBar->setStyleSheet("QProgressBar { background-color: #0000FF; } QProgressBar::chunk { background-color: #00FF00; }");
}
});
timer->start(10);
window->resize(260, 100);
window->show();
return app.exec();
}
这个示例代码实现了一个彩色进度条,进度条的颜色随着进度的改变而变化。在实现过程中,使用QProgressBar::chunk伪状态来设置进度条的颜色,使用QTimer来模拟进度的变化并更新进度条的显示。通过调整进度条的样式表,可以实现更加丰富多彩的进度条效果。
效果如下: