QprogressDialog


dialog.h
#ifndef DIALOG_H

#define DIALOG_H

//#include <QDialog>
#include <QtGui/QDialog>
#include <QLabel>
#include <QLineEdit>
#include <QProgressBar>
#include <QComboBox>
#include <QPushButton>
#include <QGridLayout>
//namespace Ui {
//    class Dialog;
//}


class Dialog : public QDialog
{
    Q_OBJECT


public:
    explicit Dialog(QWidget *parent = 0);
    ~Dialog();
private slots:
    void startProgress();
private:
    QLabel *FileNum;
    QLineEdit *FileNumLineEdit;
    QLabel *ProgressType;
    QComboBox *comboBox;
    QProgressBar *progressBar;
    QPushButton *startBtn;
    QGridLayout *mainLayout;
    //Ui::Dialog *ui;
};


#endif // DIALOG_H


dialog.cpp
#include "dialog.h"
#include "ui_dialog.h"
#include <QProgressDialog>
#include <QFont>


Dialog::Dialog(QWidget *parent) :
    QDialog(parent)
    //ui(new Ui::Dialog)
{
    //ui->setupUi(this);
    setWindowTitle(tr("Progress"));


    FileNum=new QLabel;
    FileNum->setText(tr("文件数目:"));
    FileNumLineEdit=new QLineEdit;
    FileNumLineEdit->setText(tr("10000"));


    ProgressType=new QLabel;
    ProgressType->setText(tr("显示类型:"));
    comboBox=new QComboBox;
    comboBox->addItem(tr("progressBar"));
    comboBox->addItem(tr("progressDialog"));


    progressBar=new QProgressBar;


    startBtn=new QPushButton;
    startBtn->setText(tr("开始"));


    mainLayout=new QGridLayout(this);
    mainLayout->addWidget(FileNum,0,0);
    mainLayout->addWidget(FileNumLineEdit,0,1);
    mainLayout->addWidget(ProgressType,1,0);
    mainLayout->addWidget(comboBox,1,1);
    mainLayout->addWidget(progressBar,2,0,1,2);
    mainLayout->addWidget(startBtn,3,1);
    mainLayout->setMargin(15);
    mainLayout->setSpacing(10);


    connect(startBtn,SIGNAL(clicked()),this,SLOT(startProgress()));
}


Dialog::~Dialog()
{
    //delete ui;
}
void Dialog::startProgress()
{
    bool ok;
    int num=FileNumLineEdit->text().toInt(&ok);
    if(!ok)
        return;
    if(comboBox->currentIndex()==0)
    {
        progressBar->setRange(0,num);
        for(int i=1;i<=num;i++)
        {
            progressBar->setValue(i);
        }
    }
    else if(comboBox->currentIndex()==1)
    {
        QProgressDialog *progressDlg=new QProgressDialog(this);
        QFont font("ZYSong18030",12);
        progressDlg->setFont(font);
        progressDlg->setWindowModality(Qt::WindowModal);
        progressDlg->setMinimumDuration(5);
        progressDlg->setWindowTitle(tr("please wait"));
        progressDlg->setLabelText(tr("正在复制......      "));
        progressDlg->setCancelButtonText(tr("取消"));
        progressDlg->setRange(0,num);
        for(int i=1;i<=num;i++)
        {
            progressDlg->setValue(i);
            if(progressDlg->wasCanceled())
                return;
        }
    }
}

main.cpp
#include <QtGui/QApplication>
#include "dialog.h"
#include <QTextCodec>


int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
     QTextCodec::setCodecForTr(QTextCodec::codecForLocale());
    Dialog w;
    w.show();


    return a.exec();
}



dialog.pro

#-------------------------------------------------
#
# Project created by QtCreator 2012-08-13T15:16:20
#
#-------------------------------------------------


QT       += core gui


TARGET = dialog
TEMPLATE = app




SOURCES += main.cpp\
        dialog.cpp


HEADERS  += dialog.h


FORMS    += dialog.ui

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值