Qt中進度條的簡單例項
阿新 • • 發佈:2019-01-31
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類實現進度條會出現中途未響應的情況,
據說應該要開個執行緒然後訊號槽重新整理,不知道,哈哈。