php - qt进度条不能正常工作

标签 php c++ qt post qtnetwork

我有一个问题.. 我正在向 php 脚本发出发布请求。我以 xml 的形式返回结果。我怎样才能让我的 qprogressbar 工作。 我试过这个: v

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:没有这样的信号 QNetworkAccessManager::downloadProgress(qint64,qint64)

我怎样才能使用管理器变量或类似的东西让它工作。

编辑 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() 一起使用

最佳答案

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

关于php - qt进度条不能正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9095246/

相关文章:

PHP scandir() 问题

php - pecl_http 扩展不工作

c++ - STL 的 'partial_sum' 有什么实际用途?

qt - 从 QVector 中删除所有小于 0 的元素

c++ - Qt 内置数据结构中是否有忽略项目的重复插入?

php - 函数和代码没有正确地传递变量。类似 Twitter 的系统代码中的一些调试请求

php - 如何在iPhone编程中使用新的“uploads”目录通过Web服务在Wordpress服务器上上传图像?

c++ - 函数的多重定义,为什么守卫没有捕获这个?

c++ - 如果附加了 gdb,我该如何中断,但如果没有附加,我该如何继续?

c++ - 按下按钮后如何停止后台循环?