In the constructor, we have connected the manager's finished() signal to the finished() slot of the MainWindow class. It will thus be called after the request has been posted:
void MainWindow::finished(QNetworkReply *reply) { if (m_reply != reply) { reply->deleteLater(); return; } //... }
First, we check whether the reply that was passed is the one that we have requested through m_network_manager. If this is not the case, we delete the reply and exit the function. This can happen if a reply was aborted by the sendRequest() slot. Since we are now sure that it is our request, we set m_reply to nullptr, because we have handled it and do not need this information any more:
m_reply = nullptr; if (reply->error() ...