c++ - Qt: connect a signal after a request is sent in QNetworkAccessManager -


this question has answer here:

i checking simple examples of using qnetworkaccessmanager , found (assuming manager qnetworkaccessmanager:

qnetworkrequest request; request.seturl(qurl("http://www.someserver.com"));  qnetworkreply *reply = manager->get(request); connect(reply, signal(readyread()), this, slot(slotreadyread())); connect(reply, signal(error(qnetworkreply::networkerror)),     this, slot(sloterror(qnetworkreply::networkerror))); connect(reply, signal(sslerrors(qlist<qsslerror>)),     this, slot(slotsslerrors(qlist<qsslerror>))); 

as far understand, call manager->get send out request. slots handle answer request, however, connected after call sent, not seems make sense me. here question:

  • isn't problem connect slots signals after request done? can happen request done , signals emitted before connection takes place, , hence, signals missed , never processed corresponding slots?

thanks!

l.

update: pointed out cyber_raj, question has been answered here: qt signal slot connection - qnetworkaccessmanager

not problem. call asynchronous: http://doc.qt.io/qt-5/qnetworkaccessmanager.html#details

qnetworkaccessmanager queues requests receives, , runs 6 asynchronous tasks per time. there's no room error point.

but if you're afraid can try first example, connecting signals of manager:

qnetworkaccessmanager *manager = new qnetworkaccessmanager(this); connect(manager, signal(finished(qnetworkreply*)),         this, slot(replyfinished(qnetworkreply*)));  manager->get(qnetworkrequest(qurl("http://qt-project.org"))); 

Comments

Popular posts from this blog

cakephp - simple blog with croogo -

How to group boxplot outliers in gnuplot -

bash - Performing variable substitution in a string -