在我的项目中,我需要从服务器下载1.5MB的文件。我能够在我的GUI应用程序中实现这一点:
QNetworkAccessManager* m_NetworkMngr = new QNetworkAccessManager(this);
QNetworkReply *reply = m_NetworkMngr->get(QNetworkRequest(QUrl("someurl.com")));
QEventLoop loop;
connect(reply, SIGNAL(finished()), &loop, SLOT(quit()));
loop.exec();
QUrl aUrl("someurl.com");
QFileInfo fileInfo=aUrl.path();
QFile file(aPathInClient+"\\"+fileInfo.fileName());//aPathInClient is predefined
file.open(QIODevice::WriteOnly);
file.write(reply->readAll());
delete reply;
我收到以下错误:
'connect'函数不带四个参数。
如何修改信号和插槽以在我的控制台应用程序中工作?
答案 0 :(得分:3)
我的猜测是你的代码在建立信号/插槽连接方面是正确的,但编译器似乎因为connect()
函数名称而混淆,无法正确解析:是QObject::connect()
至少需要4个参数,或者它是另一个具有相同名称但具有不同签名的函数。我建议尝试明确告诉编译器使用哪个函数,即:
QObject::connect(reply, SIGNAL(finished()), &loop, SLOT(quit()));