在Qt中,可以使用setValue()
函数来更新进度条的进度。该函数接受一个整数参数,表示当前进度值。
以下是一个示例代码,演示如何通过点击按钮来逐步更新进度条的进度:
#include <QtWidgets>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QWidget window;
QVBoxLayout layout(&window);
QProgressBar progressBar;
progressBar.setRange(0, 100); // 设置范围为0-100
progressBar.setValue(0); // 初始值为0
layout.addWidget(&progressBar);
QPushButton button("Start");
QObject::connect(&button, &QPushButton::clicked, [&](){
for (int i = 0; i <= 100; ++i) {
progressBar.setValue(i);
QCoreApplication::processEvents(); // 处理事件,使进度条得以更新
QThread::msleep(10); // 等待一段时间,模拟操作耗时
}
});
layout.addWidget(&button);
window.show();
return app.exec();
}
以上代码创建了一个带有“Start”按钮的窗口,并在其中添加了一个进度条。点击按钮后,会逐步更新进度条的进度。需要注意,在进行长时间操作时,应该避免阻塞主线程(如上述示例中),否则会导致UI无响应。