进度条

  1. #include <QtGui/QDialog>  
  2. #include <QLabel>  
  3. #include <QLineEdit>  
  4. #include <QProgressBar>  
  5. #include <QComboBox>  
  6. #include <QPushButton>  
  7. #include <QGridLayout>  
  8. class Dialog : public QDialog  
  9. {  
  10.     Q_OBJECT  
  11.   
  12. public:  
  13.     Dialog(QWidget *parent = 0);  
  14.     ~Dialog();  
  15. private slots:  
  16.     void startProgress();  
  17. private:  
  18.     QLabel *FileNum;  
  19.     QLineEdit *FileNumLineEdit;  
  20.     QLabel *ProgressType;  
  21.     QComboBox *comboBox;  
  22.     QProgressBar *progressBar;  
  23.     QPushButton *startBtn;  
  24.     QGridLayout *mainLayout;  
  25. };
  26.  
    1. #include "dialog.h"  
    2. #include <QProgressDialog>  
    3. #include <QFont>  
    4.   
    5. Dialog::Dialog(QWidget *parent)  
    6.     : QDialog(parent)  
    7. {  
    8.     setWindowTitle(tr("Progress"));  
    9.   
    10.     FileNum=new QLabel;  
    11.     FileNum->setText(tr("文件数目:"));  
    12.     FileNumLineEdit=new QLineEdit;  
    13.     FileNumLineEdit->setText(tr("10000"));  
    14.   
    15.     ProgressType=new QLabel;  
    16.     ProgressType->setText(tr("显示类型:"));  
    17.     comboBox=new QComboBox;  
    18.     comboBox->addItem(tr("progressBar"));  
    19.     comboBox->addItem(tr("progressDialog"));  
    20.   
    21.     progressBar=new QProgressBar;  
    22.   
    23.     startBtn=new QPushButton;  
    24.     startBtn->setText(tr("开始"));  
    25.   
    26.     mainLayout=new QGridLayout(this);  
    27.     mainLayout->addWidget(FileNum,0,0);  
    28.     mainLayout->addWidget(FileNumLineEdit,0,1);  
    29.     mainLayout->addWidget(ProgressType,1,0);  
    30.     mainLayout->addWidget(comboBox,1,1);  
    31.     mainLayout->addWidget(progressBar,2,0,1,2);  
    32.     mainLayout->addWidget(startBtn,3,1);  
    33.     mainLayout->setMargin(15);  
    34.     mainLayout->setSpacing(10);  
    35.   
    36.     connect(startBtn,SIGNAL(clicked()),this,SLOT(startProgress()))  
    37. }  
    1. void Dialog::startProgress()  
    2. {  
    3.     bool ok;  
    4.     int num=FileNumLineEdit->text().toInt(&ok);  
    5.     if(!ok)  
    6.         return;  
    7.     if(comboBox->currentIndex()==0)  
    8.     {  
    9.         progressBar->setRange(0,num);  
    10.         for(int i=1;i<=num;i++)  
    11.         {  
    12.             progressBar->setValue(i);  
    13.         }  
    14.     }  
    15.     else if(comboBox->currentIndex()==1)  
    16.     {  
    17.         QProgressDialog *progressDlg=new QProgressDialog(this);  
    18.         QFont font("ZYSong18030",12);  
    19.         progressDlg->setFont(font);  
    20.         progressDlg->setWindowModality(Qt::WindowModal);  
    21.         progressDlg->setMinimumDuration(5);  
    22.         progressDlg->setWindowTitle(tr("please wait"));  
    23.         progressDlg->setLabelText(tr("正在复制......      "));  
    24.         progressDlg->setCancelButtonText(tr("取消"));  
    25.         progressDlg->setRange(0,num);  
    26.         for(int i=1;i<=num;i++)  
    27.         {  
    28.             progressDlg->setValue(i);  
    29.             if(progressDlg->wasCanceled())  
    30.                 return;  
    31.         }  
    32.     }  
    33. }  
     
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值