以下是一个简单的Qt进度条实现,每秒钟更新一次进度:
#include <QApplication>
#include <QWidget>
#include <QProgressBar>
#include <QTimer>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QWidget window;
window.setWindowTitle("Progress Bar");
QProgressBar progressBar(&window);
progressBar.setGeometry(10, 10, 200, 25);
progressBar.setMinimum(0);
progressBar.setMaximum(10);
QTimer timer;
int counter = 0;
QObject::connect(&timer, &QTimer::timeout, [&]() {
if (counter == 10)
{
timer.stop();
}
else
{
counter++;
progressBar.setValue(counter);
}
});
timer.start(1000);
window.show();
return app.exec();
}
这段代码创建了一个窗口,包含一个进度条和一个计时器。计时器每秒钟触发一次,通过计数器递增来更新进度条的值。当计数器达到10时,停止计时器。
注意,我们使用了C++11中的lambda表达式来定义计时器的槽函数。这样可以更方便地在函数内部访问计数器和进度条对象。