-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 つの引数を取りません。

コンソール アプリケーションで動作するようにシグナルとスロットを変更するにはどうすればよいですか?

4

1 に答える 1

3

私の推測では、シグナル/スロット接続の確立に関してあなたのコードは正しいと思いますが、コンパイラはconnect()関数名のために混乱しているようで、適切に解決できません:QObject::connect()少なくとも4つの引数を取るか、別の関数であるか名前は同じですが、署名が異なります。使用する関数をコンパイラに明示的に伝えることをお勧めします。つまり、次のようになります。

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