大家好我有问题qprogressbar。我怎样才能让它顺利?我希望它从0到100%顺利进行。我使用它的答复变量从PHP脚本中读取数据并返回数据。我需要等待3-4秒才能获得我想要的进度条从0到100平滑的数据,而我只能从0-100瞬间获得数据。QprogressBar从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)));
}
如果您需要更多code..just告诉我。
编辑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)
问题。我想让这个进度条从程序的开始顺利进行,直到他将所有数据下载到我的回复变量中。 现在我越来越显示我的表格,然后我waint 3-4秒什么都没发生,我看到我的进度条为0,并没有什么用数据填充,然后过了一段时间进度条jumpes 100%,数据显示是..所以我希望这个perios在程序从服务器加载的时候以一定的正常速度看到我的进度条从0到100。现在我只看到空白档案,然后繁荣一切。我想让这一切顺利。如果你明白我的意思。
PHP在哪里? – PeeHaa 2012-02-01 13:34:58
我正在从PHP脚本获取XML到应答变量中。 – 2012-02-01 13:38:38
所以你只是想等待三秒钟才发布请求?或者你想等待三秒钟才能显示数据? – 2012-02-01 13:41:33