9

をどのように使用すればよいか疑問がありますQEventLoop。2 つのコードがあり、どちらも機能します (Web リソースをダウンロードします)。

最初の1つ:

QNetworkAccessManager *manager = new QNetworkAccessManager( this );
QNetworkRequest request;
request.setUrl(QUrl(url));
request.setRawHeader("User-Agent", "Mozilla Firefox");
connect(manager, SIGNAL(finished(QNetworkReply*)),this,SLOT(replyFinished(QNetworkReply*)));
manager->get( request )  ;

QEventLoop loop;
connect(manager, SIGNAL(finished(QNetworkReply*)),&loop, SLOT(quit()));
loop.exec();

二つ目:

QNetworkAccessManager *manager = new QNetworkAccessManager( this );
QNetworkRequest request;
request.setUrl(QUrl(url));
request.setRawHeader("User-Agent", "Mozilla Firefox");
manager->get( request )  ;

QEventLoop loop;
connect(manager, SIGNAL(finished(QNetworkReply*)),this, SLOT(replyFinished(QNetworkReply*)));
loop.exec();

私が知りたいのは、どれを使うべきかということです。つまり、シグナルが発せられた後、イベントループは2番目のループで終了しますか? それとも、最初のように電話する必要がありquit()ますか? どこかで 2 番目の解決策を見つけましたが、適切ではないように思われたので、最初のコードに変更しました。

4

2 に答える 2