Qt信号插槽连接 - QNetworkAccessManager

时间:2013-05-18 18:26:25

标签: qt signals qnetworkaccessmanager slot

我是Qt的新手,我试图了解以下信号插槽连接:

m_networkManager = new QNetworkAccessManager(this);
QNetworkReply *reply = m_networkManager->get(request);
connect(reply, SIGNAL(finished()),this, SLOT(onRequestCompleted()));

为什么我们在get-request之后连接“finished”信号?...如果第2行中的网络连接在插槽连接(第3行)之前执行得更快,会发生什么?

我知道,这段代码可行。但我想了解这是如何可能的:)

1 个答案:

答案 0 :(得分:4)

完成的()信号不可能发出,因为你还没有屈服于事件循环。即使以某种方式将get请求发送然后返回,您的代码仍在执行并将继续执行,直到您已经屈服于事件循环。只有这样,回复对象才有机会实际做任何事情,例如解析get响应并发出相应的信号。