QT中进度对话框(QProgressDialog)
来源:互联网 发布:solus linux命令 编辑:程序博客网 时间:2024/06/04 18:47
考虑程序的友好性,当程序在执行一项耗时操作时,界面应告诉用户“程序还在运行中”,那么,QT中进度对话框(QProgressDialog)可以满足要求。
(1) 如果所耗总时间已知,则不需要借助定时器。
QProgressDialog dialog(tr("文件复制进度"), tr("取消"), 0, 50000, this); dialog.setWindowTitle(tr("进度对话框")); dialog.setWindowModality(Qt::WindowModal); dialog.show(); for(int i = 0; i < 50000; i++)//已知最大值不超过50000 { dialog.setValue(i); QCoreApplication::processEvents(); if(dialog.wasCanceled()) break; } dialog.setValue(50000); qDebug()<<tr("复制结束!");
(2) 如果所耗总时间无法估计,则需要借助定时器, 做一个“没有终点”的进度对话框。
详细源代码请参考,不需要积分喔:
http://download.csdn.net/detail/learn_sunzhuli/8757715
progDlg = new QProgressDialog(); progDlg->setWindowTitle("Please wait..."); progDlg->setFixedWidth(300); progDlg->setRange(0, 100); progDlg->show(); timer = new QTimer(); currentValue = 0; progDlg->setValue(currentValue); connect(timer, SIGNAL(timeout()), this, SLOT(updateProgressDialog())); timer->start(100);//开启一个没有终点的定时器//执行耗时操作。。。//耗时操作完成后,关闭进度对话框 timer->stop();//停止定时器 if(currentValue != 100) currentValue = 100; progDlg->setValue(currentValue);//进度达到最大值 delete progDlg;//关闭进度对话框//借助定时器,不断更新进度条,直到耗时操纵结束void updateProgressDialog(){ currentValue++; if( currentValue == 100 ) currentValue = 0; progDlg ->setValue(currentValue); QCoreApplication::processEvents();//避免界面冻结 if(progDlg->wasCanceled()) progDlg->setHidden(true);//隐藏对话框}
QT进度对话框(QProgressDialog)运行效果图:
0 0
- QT中进度对话框(QProgressDialog)
- QT中进度对话框(QProgressDialog)
- Qt标准对话框之进度对话框(QProgressDialog)
- 进度对话框 QProgressDialog
- QtCreator 对话框(二)QMessageBox(消息对话框),QProgressDialog (进度对话框),QErrorMessage(错误信息对话框),QWizardPage(向导对话框)
- QT 等待对话框/进度--
- QT 等待对话框/进度
- qt增加进度对话框
- QT 等待对话框/进度--
- Qt中进度条 和进度对话框的典型使用方法
- Qt中进度条 和进度对话框的典型使用方法
- qt中对任务繁忙时QProgressDialog的使用
- QT 进度对话框:等待进度条
- Qt: 进度对话框的使用
- Qt QColorDialog QErrorMessage QFileDialog QFontDialog QProgressDialog 等对话框的使用测试
- QProgressDialog 快速实现进度的显示界面
- QprogressDialog
- Android对话框之ProgressDialog(进度对话框)
- php学习随记2
- HDU 5251-矩形面积(点集的最小面积包围矩形)
- 文本框输入完成后隐藏键盘
- MAC下安装与配置MySQL
- 静态网页和动态网页-个人学习理解
- QT中进度对话框(QProgressDialog)
- Android传感器常见显示程序
- 第十二周项目2 - 摩托车继承自行车和机动车
- oracle 并行
- C++中placement new操作符(经典)
- iOS/object-c: 枚举类型 enum,NS_ENUM,NS_OPTIONS
- 1491 取物品
- 重载,覆盖与隐藏
- HDU 2024 C语言合法标识符