以下是一个简单的进度条类的示例,使用Qt Widgets模块:
#include <QWidget>
#include <QProgressBar>
#include <QTimer>
class ProgressBar : public QWidget {
Q_OBJECT
public:
explicit ProgressBar(QWidget *parent = nullptr);
public slots:
void setValue(int value);
private:
QProgressBar *bar_;
int value_;
QTimer *timer_;
};
ProgressBar::ProgressBar(QWidget *parent)
: QWidget(parent), bar_(new QProgressBar(this)),
value_(0), timer_(new QTimer(this)) {
bar_->setRange(0, 100);
bar_->setValue(value_);
connect(timer_, &QTimer::timeout, [this]() {
if (value_ >= 100) {
timer_->stop();
} else {
value_ += 5;
bar_->setValue(value_);
}
});
timer_->start(500); // update every half second
}
void ProgressBar::setValue(int value) {
value_ = value;
bar_->setValue(value_);
}
在这个类中,我们创建了一个包含进度条的窗口小部件,并且使用一个定时器来模拟进度条的进展。setValue方法允许你动态地更新进度条的值。