完成后,QProgressDialog栏重置为零

时间:2015-02-06 16:49:06

标签: c++ qt

我正在使用QProgressDialog,它显然只显示了进度,并且在此过程中会增加。当它达到100%时,它上面的进度条重置为零,而不是在那之后显示100%。

progress是该类的成员变量。

QSharedPointer<QProgressDialog> progress;

用于on_clicked事件。注意我使用Sleep()进行模拟,我知道它不属于那里。问题是当它达到100%时,进度条显示零进度,我想坚持100%。

void MainWindow::on_pushButtonConvert_clicked()
{
    int numFiles = 10;
    progress = (QSharedPointer<QProgressDialog>) new QProgressDialog("Copying files...", "Abort Copy", 0, numFiles, this);
    progress->setWindowModality(Qt::WindowModal);
    progress->setAutoClose( false );

    for (int i = 0; i < numFiles; i++) {
        progress->setValue(i);

        if (progress->wasCanceled())
            break;
        //... copy one file

        Sleep(500);
    }
    progress->setValue(numFiles);
}

1 个答案:

答案 0 :(得分:1)

我想通了,我不得不打电话:

progress->setAutoReset( false );