QNetworkAccessManager可从Internet崩溃中下载图像预览



我有QListWidget,其中的每个自定义小部件都包含一个标签,该标签使用每个自定义小程序中定义的QNetworkAccessManager从Internet获取其QPixmap。

当有10、20、30个小部件添加到QListWidget时,一切都很好。

当小部件的数量(每个小部件都有QNetworkAccessManager来从互联网加载图像)达到300/400时,应用程序就坏了。线程错误到达。

当应用程序中有很多(300-2000)QNetworkAccessManager同时从Internet加载图像时,如何避免线程错误?

我使用的是Qt 5.5

通常每个应用程序只需要一个QNetworkAccessManagers。它是一个相当重的对象,可以同时管理许多并行连接。它还管理套接字和会话,因此对同一服务器的所有HTTP请求都可以通过单个(或几个;它是可配置的)TCP连接来维护(一旦一个请求完成,TCP连接就不会关闭,下一个请求在同一连接中启动)。

创建许多QNetworkAccessManagers实例的常见原因是从单独的连接中屏蔽其异步信号的问题。注意,可以将不是来自而是来自QNetworkReply的信号连接到适当的时隙。

函数QNetworkAccessManager::get()QNetworkAccessManager::post()返回指向负责该请求的QNetworkReply对象的指针。该QNetworkReply对象的信号可以连接到适当的小部件的插槽。因此,一旦该回复完成,它将只触发一个特定的窗口小部件插槽,例如,请参阅Singleton QNetworkAccessManager未将响应引导到所需的形式

相关内容

  • 没有找到相关文章

最新更新