Qt中进度条的简单实例

来源:互联网 发布:js 短路求值 编辑:程序博客网 时间:2024/06/05 16:11

Qt中有两种进度条相关的类

一个是QProgressDialog和QProgressBar

实例:

bool ok;    int num=FileNumLineEdit->text().toInt(&ok);    //ok的作用在于先检测数据是否合理    if(comboBox->currentIndex()==0){//        progressBar->setRange(0,num);        progressBar->setMinimum(0);        progressBar->setMaximum(num);        for(int i=1;i<num+1;i++){               progressBar->setValue(i);        }    }    else{        QProgressDialog *progressDialog=new QProgressDialog(this);        QFont font("ZYSong18030",12);        progressDialog->setFont(font);        progressDialog->setWindowModality(Qt::WindowModal);        /*         * 设置进度对话框采用模态方式进行显示,即显示进度的同时,其他窗口不响应输入信号         */        progressDialog->setMinimumDuration(1);        /*         * 设置进度对话框需要操作的最短时间,设定为5秒,默认是4秒         * 如果时间短于minimumduration,则对话框无法出现         */        progressDialog->setWindowTitle(tr("Please Wait"));        progressDialog->setLabelText(tr("Copying..."));        progressDialog->setCancelButtonText(tr("Cancel"));        /*         *设置进度对话框的取消按钮的显示文字         */        progressDialog->setRange(0,num);        for(int i=1;i<num+1;i++){            progressDialog->setValue(i);            if(progressDialog->wasCanceled())                   return ;        }    }

但是有一个问题,使用该方法利用QProgressBar类实现进度条会出现中途未响应的情况,


据说应该要开个线程然后信号槽刷新,不知道,哈哈。

原创粉丝点击