Uso apropiado de QEventLoop
Tengo dudas sobre cómo debo usarQEventLoop
. Tengo 2 piezas de código, ambas funcionan para mí (descargue el recurso web).
El primero:
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();
Segundo:
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();
Lo que quiero saber es cuál debo usar. Quiero decir, ¿se cierra el bucle de eventos en el segundo después de que se emita la señal? O tengo que llamarquit()
como en el primero? Encontré la segunda solución en alguna parte, pero no me pareció adecuada, así que la modifiqué en el primer código.