-2

在我的项目中,我需要从服务器下载一个 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' 函数不接受四个参数。

如何修改信号和插槽以在我的控制台应用程序中工作?

4

1 回答 1

3

我的猜测是您的代码在建立信号/插槽连接方面是正确的,但是编译器似乎因为connect()函数名称而感到困惑并且无法正确解析它:无论是QObject::connect()至少需要 4 个参数,还是另一个函数同名,但签名不同。我建议尝试明确告诉编译器使用哪个函数,即:

QObject::connect(reply, SIGNAL(finished()), &loop, SLOT(quit()));
于 2013-10-31T07:36:27.937 回答