ui:
效果图:
代码部分:
.h文件只加了一个 void startProgress()方法
.cpp文件
#include "dialog.h"
#include "ui_dialog.h"
#include <QProgressDialog>
Dialog::Dialog(QWidget *parent)
: QDialog(parent)
, ui(new Ui::Dialog)
{
ui->setupUi(this);
connect (ui->starBtn,SIGNAL(clicked()),this,SLOT(startProgress()));
}
void Dialog::startProgress()
{
bool ok;
int num = ui->FileNumLineEdit->text().toInt(&ok);//获取当前需要复制的文件数目
if(ui->comboBox->currentIndex() == 0)
{
ui->progressBar->setRange(0,num);//设置进度条的步进范围
for(int i=1;i<num+1;i++)
{
ui->progressBar->setValue(i);//模拟每个文件的复制过程
}
}
else if(ui->comboBox->currentIndex() == 1)
{
//创建一个进度对话框
QProgressDialog * progressDialog = new QProgressDialog(this);
QFont font("ZYSong18030",12);
progressDialog->setFont(font);
progressDialog->setWindowModality(Qt::WindowModal);//设置进度对话框采用模态对话框,即在显示进度的同时,其它窗口不响应输入信号
progressDialog->setMinimumDuration(5);//设置进度对话框出现需要等待的时间,此处设置为5s,默认为4s
progressDialog->setWindowTitle(tr("Please wait"));//设置窗口标题
progressDialog->setLabelText(tr("Coping"));//设置进度对话框显示文字信息
progressDialog->setCancelButtonText(tr("Cancel"));//设置进度对话框的“取消”按钮的显示文字
progressDialog->setRange(0,num); //设置进度对话框的步进范围
for(int i=1;i<num+1;i++)
{
progressDialog->setValue(i);
if(progressDialog->wasCanceled())//检测取消按钮是否被触发
return ;
}
}
}
Dialog::~Dialog()
{
delete ui;
}
最近刚换了一个工作,主要使用QT,所以特来学习,案例比较粗糙,只作为学习和练手使用