Qt有2种创建进度条的方式:
1、使用QProgressBar类创建进度条
(1)、包含头文件,声明QProgressBar对象指针
#include<QProgressBar>
...
private:
QProgressBar* pProgressBar;
...
(2)、初始化
...
pProgressBar=new QProgressBar();//初始化指针
Qt::WindowFlags flags=Qt::Dialog|Qt::WindowCloseButtonHint;
pProgressBar->setWindowFlags(flags);//设置窗口标志
QFont font=QFont(tr("宋体"),10);
pProgressBar->setFont(font);//设置进度条的字体
pProgressBar->setWindowTitle(tr("Please Wait Progress Bar"));//设置进度条的窗口标题
pProgressBar->setRange(0,mTotalNum);//设置进度条的数值范围,0~mTotalNum
pProgressBar->setValue(0);//设置进度条的初始值
pProgressBar->show();//显示进度条
...
(3)、在数据处理线程或者定时器响应函数里更新pProgressBar的值
//以下代码段放置于某个数据处理线程或者定时器响应槽函数之中
...
mCurrentNum++;//当前值mCurrentNum自增
if(mCurrentNum<=mTotalNum)//当前值mCurrentNum小于或等于总数量mTotalNum
{
pProgressBar->setValue(mCurrentNum);
}
else//数据处理完成
{
pProgressBar->close();//关闭进度条
}
...
(4)、用完记得释放pProgressBar的内存
...
delete pProgressBar;
...
(5)、效果展示
2、 使用QProgressDialog类创建进度条(和QProgressBar类似)
(1)、包含头文件,声明pProgressDialog对象指针
#include<QProgressDialog>
...
private:
QProgressDialog* pProgressDialog;
...
(2)、初始化
...
pProgressDialog=new QProgressDialog();//初始化指针
Qt::WindowFlags flags=Qt::Dialog|Qt::WindowCloseButtonHint;
pProgressDialog->setWindowFlags(flags);//设置窗口标志
QFont font=QFont(tr("宋体"),10);
pProgressDialog->setFont(font);//设置进度条的字体
pProgressDialog->setRange(0,mTotalNum);//设置进度条的数值范围,0~mTotalNum
pProgressDialog->setValue(0);//设置进度条的初始值
pProgressDialog->setWindowTitle(tr("Please Wait Progress Dialog"));//设置进度条的窗口标题
pProgressDialog->setLabelText("Copying...");//设置进度条的提示内容
pProgressDialog->setCancelButtonText("Cancel");//设置进度条取消按钮的文字
pProgressDialog->show();//显示进度条
...
(3)、在数据处理线程或者定时器响应函数里更新pProgressDialog的值
//以下代码段放置于某个数据处理线程或者定时器响应槽函数之中
...
mCurrentNum++;//当前值mCurrentNum自增
if(mCurrentNum<=mTotalNum)//当前值mCurrentNum小于或等于总数量mTotalNum
{
pProgressDialog->setValue(mCurrentNum);//更新进度条的当前数值
if(pProgressDialog->wasCanceled())//进度条取消
{
pProgressDialog->close();//关闭进度条
}
}
else//数据处理完成
{
pProgressDialog->close();//关闭进度条
}
...
(4)、用完记得释放pProgressDialog的内存
...
delete pProgressDialog;
...
(5)、效果展示