Dag*_*git 5 qt signals qnetworkaccessmanager slot
我是 Qt 新手,我试图理解以下信号槽连接:
m_networkManager = new QNetworkAccessManager(this);
QNetworkReply *reply = m_networkManager->get(request);
connect(reply, SIGNAL(finished()),this, SLOT(onRequestCompleted()));
Run Code Online (Sandbox Code Playgroud)
为什么我们在 get-request 之后连接“finished”信号?...如果第 2 行中的网络连接在插槽连接(第 3 行)之前执行得更快,会发生什么?
我知道,这段代码会起作用。但我想了解这是怎么可能的:)
Finished() 信号不可能发出,因为您还没有屈服于事件循环。即使 get 请求以某种方式发送然后返回,您的代码仍在执行并将继续执行,直到您屈服于事件循环。只有这样,回复对象才有机会实际执行任何操作,例如解析获取响应并发出相应的信号。
归档时间: |
|
查看次数: |
1300 次 |
最近记录: |