start按钮对象名为btn_init,stop按钮对象名为btn_end。
在Widget类中声明一个QTimer对象和进度条显示的数值:
private:
Ui::Widget *ui;
int prog_num; //作为进度条显示的数值
QTimer *myTimer; //计时器对象
在Widget中声明一个槽函数:
private slots:
void process();
在构造函数中初始化:
ui->progressBar->setValue(0); //初始化进度条为0
prog_num = 0;
myTimer = new QTimer(this);
connect(myTimer, SIGNAL(timeout()), this, SLOT(process())); //将超时信号和自定义的槽函数连接
各槽函数的实现:
void Widget::on_btn_init_clicked()
{
myTimer->start(100); //设置超时时间为100ms,启动计时器
}
void Widget::on_btn_end_clicked()
{
myTimer->stop(); //停止计时器
}
void Widget::process()
{
prog_num ++; //进度条数值自增
prog_num = prog_num > 100 ? 0 : prog_num;//超过100则归0
ui->progressBar->setValue(prog_num); //设置进度条数值
}