进度条通常在处理长时间任务时需要提供用于显示时间,告诉用户当前任务的进展情况。
Qt提供了两种进度条显示方式,一种是QProgressBar,另一种是QProgressDialog,即一种对话框。
comboBox中选项为dialog即使用QProgressDialog显示进度条,Bar即使用QProgressBar。
code
int num = ui->lineEdit->text().toInt(); //获取当前文档数目,即总步进值 if(ui->comboBox->currentIndex()==0){ QProgressDialog *progressDialog = new QProgressDialog(this); progressDialog->setValue(0); //初始化值为0 progressDialog->setMinimumDuration(5); //设置对话框出现需要等待的时间 progressDialog->setRange(0, num); //设置步进值的范围 progressDialog->setWindowTitle("Please wait"); progressDialog->setLabelText("copying......"); for (int i = 0; i < num; i ++){ progressDialog->setValue(i); //模拟进度 if(progressDialog->wasCanceled()){ //当点击取消按钮时,关闭对话框 return ; } } } else{ ui->progressBar->setFormat("%p%"); //设置进度条的显示格式,%p%为百分比,%v表示当前步进值,%m为总的步进值 ui->progressBar->setRange(0, num); for (int i = 0; i < num; i ++){ ui->progressBar->setValue(i); } } QMessageBox::information(this,"提示","当前任务完成");`
程序运行图片如下:
刚开始学习Qt,写的可能不完整,欢迎大家指正