QprogressBar在一秒内从0跳到100,如何使它平滑

时间:2012-02-01 13:28:17

标签: c++ qt post progress-bar

大家好我qprogressbar有问题。我怎样才能让它顺利?我希望它从0到100%顺利进行。我使用它与回复变量,从PHP脚本读取数据并返回数据。我需要等待3-4秒才能获得我的数据,我希望进度条从0到100顺利进行,我只能立即从0到100。

这是我的代码:

void MainWindow::updateDataTransferProgress(qint64 bytesReceived, qint64 bytesTotal)
{
    ui->progressBar->setMaximum(bytesTotal);
    ui->progressBar->setValue(bytesReceived);

}

void MainWindow::Citanje_korisnika()
{
    init();

    QUrl params;
        params.addQueryItem("action","Citanje_korisnika");

        QByteArray data;
        data.append(params.toString());
        data.remove(0,1);

        QNetworkRequest request;
        request.setUrl(url);
        request.setHeader(QNetworkRequest::ContentTypeHeader,
        QVariant("application/x-www-form-urlencoded"));

        reply = manager->post(request, data);
        connect(reply, SIGNAL(downloadProgress(qint64, qint64)),this, SLOT(updateDataTransferProgress(qint64,qint64)));

}

如果您需要更多代码,请告诉我。

编辑2: 这是我的另一部分代码:

void MainWindow::init()
{
    url = "http://127.0.0.1:8888/direkt_php_qt.php";
    manager = new QNetworkAccessManager(this);
   // connect(manager, SIGNAL(downloadProgress(qint64,qint64)),this,SLOT(updateDataTransferProgress(qint64,qint64)));
    connect(manager, SIGNAL(finished(QNetworkReply*)),this, SLOT(replyFinished(QNetworkReply*)));
}

所以程序启动,首先它进入函数void MainWindow::Citanje_korisnika()然后它转到void MainWindow::init()然后void MainWindow::updateDataTransferProgress(qint64 bytesReceived, qint64 bytesTotal)问题是。我想让这个进度条从程序的开头顺利进行,直到他将所有数据下载到我的回复变量。 现在我正在显示我的表单,然后我发现3-4秒没有发生任何事情,我看到我的进度条为0,没有任何数据填充,然后一段时间后进度条跳到100%,数据显示..所以我希望这个perios在程序从服务器加载时看到我的进度条从0到100以正常速度运行。现在我只看到空白文件,然后繁荣一切都开启了。我想让一切顺利。如果你知道我的意思。

0 个答案:

没有答案