2012-02-01 30 views
1

私は1つの問題があります.. 私はPHPスクリプトへの投稿要求をしています。そして、私は結果をXMLとして戻しています。 qprogressbarを動作させるにはどうすればよいですか? 私はこれ試してみました: Vqtプログレスバーが正常に動作していません

oid 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::updateDataTransferProgress(qint64 bytesReceived, qint64 bytesTotal) 
{ 
    ui->progressBar->setMaximum(bytesTotal + (bytesTotal * 0.25)); 
    ui->progressBar->setValue(bytesReceived); 
    ui->progressBar->show(); 
} 

をしかし、それは働いていません。私はエラーが発生しています: Object::connect: No such signal QNetworkAccessManager::downloadProgress(qint64,qint64)

どうすればマネージャー変数などでこの作業を行うことができますか?

EDIT 2: これは、initを呼び出している例機能()

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); 

} 

私はあなたのコードを試してみましたが、私は常にプログラムから予想外に出るためです。 postメソッドを呼び出す関数からinit()で動作するように私の関数を変更できますか?

答えて

1

donwloadProgressは、QNetworkReplyというシグナルです。 このようなものを試してみてください:

url = "http://127.0.0.1:8888/direkt_php_qt.php"; 
manager = new QNetworkAccessManager(this); 

QNetworkReply* reply = manager->get(QNetworkRequest(url)); 
connect(reply, SIGNAL(downloadProgress(qint64, qint64)),this, SLOT(updateDataTransferProgress(qint64,qint64))); 
+0

私は更新された質問があります、私はそれを動作させることができます。それは私を追い払う –

+0

誰かはおそらく答えを知っている? –

+0

私はそれを働かせました。どのようにスムーズに行くように、秒で24%から100%に飛び跳ねるのが好きではありません。 –

関連する問題