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
Post a Comment