qt进度条工作不正常
qt progress bar is not working properly
我有一个问题。。我正在对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: No such signal QNetworkAccessManager::downloadProgress(qint64,qint64)
我该如何使用manager变量或类似的东西来实现这一点。
编辑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)));
相关文章:
- C++中的memset函数工作不正常
- 通用线程池类工作不正常
- 名为DLL的C++windows服务程序工作不正常
- C++-循环中的If语句工作不正常
- While循环和if/else语句工作不正常
- C++:最大数组值函数工作不正常
- 工会工作不正常
- 为什么这个循环运行不可见的代码?工作不正常
- C++STL映射键和值工作不正常
- c++文件指针工作不正常
- do while循环工作不正常
- qdbusxml2cpp工作不正常
- 缓存未命中似乎工作不正常
- 线程工作不正常
- 循环工作不正常
- 构造函数工作不正常
- IOCTL_DISK_GET_DRIVE_LAYOUT_EX工作不正常
- C++if/else-if语句工作不正常
- 面部和眼睛检测工作不正常
- Qt-RegExp工作不正常