Qt事件循环处理

Qt事件循环依赖于 QCoreAppcation::exec(). 在exec()没调用前,所有的消息都是不会被传递的。

这会造成什么现象呢?

网络请求不可用

QNetworkAccessManager::get() 不可用,即你调用了 get() 无法收到 finished() 信号

QTcpSocket::connectToHost() 不可用,即你调用了 connectToHost() 无法连接到主机

调用 QTcpSocket::state() 你将发现 QTcpSocket 一直处在 QAbstractSocket::ConnectingState状态

要解决这个问题,就需要将以上事件处理移到QCoreAppcation::exec() 之后处理。

例如:

利用定时器解决这个问题。

main.cpp

int main(int argc, char *argv[])

{

QCoreApplication a(argc, argv);

std::auto_ptr autoPtr(new CInitApp);

return a.exec();

}

InitApp.h

#ifndef INITAPP_H

#define INITAPP_H

#include

class CInitApp : public QObject

{

Q_OBJECT

public:

explicit CInitApp(QObject* parent = 0);

private slots:

void onInitApp();

};

#endif // INITAPP_H

InitApp.cpp

#include "InitApp.h"

#include

CInitApp::CInitApp(QObject* parent) : QObject(parent)

, m_pCoordsRecv(NULL)

{

//为了在启动事件循环后,可以正常执行初始化流程

QTimer::singleShot(0, this, SLOT(onInitApp()));

}

void CInitApp::onInitApp()

{

/* 此槽函数中实现各种初始化操作 */

}

qt按钮功能循环触发_Qt事件循环处理相关推荐

  1. PyQt5桌面应用开发(2):事件循环

    本文目录 PyQt5桌面应用系列 前言 当君怀GUI日,是妾断肠时 几时得GUI去,依旧作山夫 需求分析 代码 事件循环的基本结构 PyQt5的事件机制 启动事件循环 唯将往来信,遥将连信槽 借问Si ...

  2. 【Libevent】Libevent学习笔记(三):事件循环

    00. 目录 文章目录 00. 目录 01. event_base_loop函数 02. event_base_dispatch函数 03. event_base_loopexit函数 04. eve ...

  3. 【传智播客】Libevent学习笔记(三):事件循环

    目录 00. 目录 01. event_base_loop函数 02. event_base_dispatch函数 03. event_base_loopexit函数 04. event_base_l ...

  4. JavaScript基础:浅聊事件循环(Event LooP)以及微任务,宏任务,DOM渲染

    一直说JavaScript是单线程的执行的(当然也可以通过其它其它的方式异步,本篇暂时不聊). 内核的组成 首先聊一下浏览器的内核组成部分,当然下面也不是全部,而只是说一些常见的. 主线线程 js引擎 ...

  5. tkinter06_事件循环

    原文:https://tkdocs.com/tutorial/eventloop.html 事件循环 在上一章的最后,我们解释了如何使用进度条向用户提供有关长时间运行的操作的反馈.进度条本身很简单:调 ...

  6. 深入理解qemu事件循环 —— 基本框架

    文章目录 Glib 事件循环 简述 事件循环状态机 demo 定制事件源,回调函数 定制事件源,回调函数和状态机回调函数 QEMU事件循环 事件循环初始化 状态机回调函数的定制 事件源的定制 poll ...

  7. nodejs事件和事件循环简介

    文章目录 简介 事件 事件循环 事件循环的阻塞 事件循环举例 栈和消息队列 作业队列和promise process.nextTick() setImmediate() setInterval() 简 ...

  8. 【转载】浏览器事件循环机制(event loop)

    首先,本文转自https://juejin.im/post/5afbc62151882542af04112d 当我看完菲利普·罗伯茨的 javascript event loop的演讲的时候,就对于事 ...

  9. js中如何得到循环中的点击的这个id_Js篇面试题9请说一下Js中的事件循环机制

    虽互不曾谋面,但希望能和您成为笔尖下的朋友 以读书,技术,生活为主,偶尔撒点鸡汤 不作,不敷衍,意在真诚吐露,用心分享 点击左上方,可关注本刊 标星公众号(ID:itclanCoder) 如果不知道如 ...

  10. wxWidgets:WxBase 事件循环

    wxWidgets:WxBase 事件循环 wxWidgets:WxBase 事件循环 wxWidgets:WxBase 事件循环 探索实现事件循环并在 wxBase 中获得 wxTimer 支持的方 ...

最新文章

  1. IntelliJ IDEA2017 修改缓存文件的路径(转载:https://www.cnblogs.com/acm-bingzi/p/ideaCachePath.html)
  2. 如何联网获取北京时间
  3. 《JavaScript 高级程序设计》笔记 第1~5章
  4. 关系数据可视化gephi
  5. 3.linux安装vsftpd服务
  6. 双层板在哪层覆铜_2020年中国印制电路板行业发展现状及发展趋势预测(图)...
  7. SECURITY:补丁
  8. iPhone如何恢复出厂设置?苹果手机恢复出厂设置教程【3种方法】
  9. 无法定位程序输入点dxgiget_无法定位程序输入点于动态链接库dxgi.dll上怎么解决?-51dll帮助...
  10. Tableau自定义调色板
  11. 华为员工魂丧非洲【转发】
  12. 10x 程序员工作法 - 划重点 | “自动化”主题的重点内容回顾汇总
  13. 阿里云验证码与通知短信
  14. 收集了一些Weblogic监控工具
  15. 安装gin失败 # cd .; git clone -- https://github.com/gin-gonic/gin xcrun: error: invalid active develope
  16. 坐下来谈谈如何写好一份简历?
  17. 关于对象转json字符串的几个工具比较
  18. Cube和Kylin创建Cube的过程
  19. Speedoffice(Excel)中如何标记重复内容
  20. 使用flex布局实现局部滚动条

热门文章

  1. mysql 数据库取前后几秒 几分钟 几小时 几天的语句
  2. Mysql5.6 自动化部署
  3. CPU 100% 异常排查实践与总结
  4. centOS安装telnet(在线和rpm包安装)
  5. vim编辑文件时显示行号
  6. ASP和JS读写Cookie的问题
  7. [AX]AX2012 AIF(五):使用文档服务更新数据
  8. 如何设置GridView的列宽
  9. SQL Server中使用索引性能的比较
  10. 10月24号、25号、26号三天PC端云音乐项目总结