专栏首页跟Qt君学编程Http请求不阻塞ui操作

Http请求不阻塞ui操作

利用QEventLoop与QNetworkAccessManager实现网络请求不阻塞ui的操作。

使用场景

  • 当我们发送一个网络请求时,持续等待发送回来的数据,再进行下一步操作,但是期间ui不能阻塞的情况。

示例

  • QEventLoop类提供一种进入和退出事件循环的方法。
  • execquit分别为进入和退出事件循环。
QNetworkAccessManager manager;
QNetworkRequest request(QUrl("http://www.qtbig.com"));
QNetworkReply* reply = manager.get(request);
QEventLoop eventLoop;
QObject::connect(reply, SIGNAL(finished()), &eventLoop, SLOT(quit()));
eventLoop.exec(); // 进入等待,但ui事件循环依然进行。
QByteArray result = reply->readAll();

本文分享自微信公众号 - Qt君(qtjuna)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-06-12

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 创建Qt子工程

    Qt君
  • QUiLoader加载ui界面文件

    Qt君
  • 使用QDesktopServices打开资源文件

    Qt君
  • Idea运行Tomcat 报 java.net.UnknownHostException

    剑行者
  • 活动 Web 页面人机识别验证的探索与实践

    美美导读:移动互联网时代,大部分营销活动仍然通过 Web 页面来承载,但是 Web 页面由于天生的“环境透明”,所以在安全性层面有较大的挑战。本文主要以移动端 ...

    美团技术团队
  • 【Java入门提高篇】Day18 Java容器类详解(一)Collection接口

      所谓容器,就是专门用来装对象的东西,如果你学过高数,没错,就跟里面说的集合是一个概念,就是一堆对象的集合体,但是集合类是容器类中的一个子集,为了区别表示,所...

    弗兰克的猫
  • SpringBoot 系列教程 Mybatis+注解整合篇

    上一篇博文介绍了 SpringBoot 整合 mybatis 的过程,但是 xml 的方式,总感觉让人有点蛋疼;本文将介绍一种 noxml 的使用姿势,纯用注解...

    一灰灰blog
  • Spring Boot---(16)Spring Boot使用Thymeleaf开发web页面

    摘要:Spring官方不推荐使用JSP来开发WEB,而是推荐使用如下几种模板引擎来开发:

    IT云清
  • Feign自动装配原理

    按照以往的惯例,在研究源码的时候,我们先看一下spring.factories文件下自动装配的类FeignAutoConfiguration,其中比较重要的东西...

    Java学习录
  • 代理、反射、注解、hook

    通过代理对象访问目标对象.这样做的好处是:可以在目标对象实现的基础上,扩展目标对象的功能。 代理对象拦截真实对象的方法调用,在真实对象调用前/后实现自己的逻辑...

    六月的雨

扫码关注云+社区

领取腾讯云代金券