我是Qt新手,我正在尝试理解下面的信号槽连接:
m_networkManager = new QNetworkAccessManager(this);
QNetworkReply *reply = m_networkManager->get(request);
connect(reply, SIGNAL(finished()),this, SLOT(onRequestCompleted()));为什么我们要在get-request之后连接"finished“信号呢?……如果在插槽连接(line-3)之前更快地执行line-2中的网络连接,会发生什么?
我知道,这段代码会起作用。但我想了解这是如何实现的:)
发布于 2013-05-19 03:02:22
finished()信号不可能发出,因为您还没有屈服于事件循环。即使get请求以某种方式被发送,然后返回,您的代码仍然在执行,并且将继续执行,直到您屈从于事件循环。只有这样,reply对象才有机会实际执行任何操作,例如解析get响应并发出相应的信号。
https://stackoverflow.com/questions/16627573
复制相似问题