主线程中发出一个信号,另一个线程槽函数没有响应,这个问题搞了好几个小时,才发现原来是connect时候的第5个参数写错了,在这里做下备注吧。

connect用于连接qt的信号和槽,在qt编程过程中不可或缺。它其实有第五个参数,只是一般使用默认值,在满足某些特殊需求的时候可能需要手动设置。

Qt::AutoConnection: 默认值,使用这个值则连接类型会在信号发送时决定。如果接收者和发送者在同一个线程,则自动使用Qt::DirectConnection类型。如果接收者和发送者不在一个线程,则自动使用Qt::QueuedConnection类型。

Qt::DirectConnection:槽函数会在信号发送的时候直接被调用,槽函数运行于信号发送者所在线程。效果看上去就像是直接在信号发送位置调用了槽函数。这个在多线程环境下比较危险,可能会造成奔溃。

Qt::QueuedConnection:槽函数在控制回到接收者所在线程的事件循环时被调用,槽函数运行于信号接收者所在线程。发送信号之后,槽函数不会立刻被调用,等到接收者的当前函数执行完,进入事件循环之后,槽函数才会被调用。多线程环境下一般用这个。

Qt::BlockingQueuedConnection:槽函数的调用时机与Qt::QueuedConnection一致,不过发送完信号后发送者所在线程会阻塞,直到槽函数运行完。接收者和发送者绝对不能在一个线程,否则程序会死锁。在多线程间需要同步的场合可能需要这个。

Qt::UniqueConnection:这个flag可以通过按位或(|)与以上四个结合在一起使用。当这个flag设置时,当某个信号和槽已经连接时,再进行重复的连接就会失败。也就是避免了重复连接。

QT 信号与槽不在同一个线程 connect相关推荐

  1. QT下信号与槽不在同一个线程中如何connect

    QT下信号与槽不在同一个线程中如何connect

  2. Qt信号与槽的五种连接方式

    qt信号与槽的五种连接方式: 1.默认连接:如果是在同一线程等价于直连,在不同线程等价于队列连接 2.直连:信号在哪,在哪个线程执行(最好只在同一线程中用) 3.队列连接: 槽在哪就在哪个线程执行 ( ...

  3. 【Qt】Qt信号与槽使用不当,使程序崩溃

    问题描述 跨线程使用Qt信号和槽,信号发送时间间隔小于槽函数处理时间时,造成程序崩溃. 原因分析 跨线程使用Qt信号和槽时,connect默认是QueuedConnection,队列连接方式. 信号传 ...

  4. Qt 信号和槽 事件处理

    一:Qt信号和槽概述 信号与槽作为QT的核心机制在QT编程中有着广泛的应用,本章介绍了信号与槽的一些基本概念.元对象工具以及在实际使用过程中应注意的一些问题. 信号和槽机制是QT的核心机制,要精通QT ...

  5. QT信号与槽——观察者模式——回调函数

    QT信号与槽--观察者模式--回调函数 1.QT信号与槽机制 1.1信号本质 信号是由于用户对窗口或控件进行了某些操作,导致窗口或控件产生了某个特定事件,这时候 Qt 对应的窗口类会发出某个信号.比如 ...

  6. Qt信号与槽传递自定义数据类型——两种解决方法

    Qt信号与槽传递自定义数据类型--两种解决方法 参考文章: (1)Qt信号与槽传递自定义数据类型--两种解决方法 (2)https://www.cnblogs.com/tid-think/p/9300 ...

  7. QT 信号与槽 最简单例子

    QT  信号与槽 最简单例子 main.cpp 和 my_head.h源码: [cpp] view plaincopy #ifndef MY_HEAD_H #define MY_HEAD_H #inc ...

  8. QT信号与槽(自定义带参数的信号)

    关于QT信号与槽的问题其实每个初学QT的人都会遇到,当时我需要做一个带界面的demo,在信号和槽的问题上,我需要的想法是让槽可以有参数的进行操作,但是系统内置的clicked()信号是不含参数的,这对 ...

  9. Qt信号与槽传递QList动态数组

    Qt信号与槽传递QList动态数组 根据实验,测试程序见下: - QString的QList动态数组能够通过signal-slot机制进行传递: - 自定义结构的QList动态数组也能通过signal ...

  10. Qt信号和槽函数连接不成功原因

    Qt信号和槽连接失败原因主要有以下几点: 1.槽函数并没有声明在类的public slots(或private slots或protected slots)里,因此,所想要成为槽函数的那个函数只是普普 ...

最新文章

  1. Java 动态绑定 静态绑定
  2. 数据中心的未来:一体化无人值守
  3. [USACO1.2]双重回文数 Dual Palindromes
  4. 构造函数可以实例化对象
  5. 听说容器正在吃掉整个软件世界?
  6. if 组件是否存在_LeetCode 817. 链表组件 题解
  7. cad页面布局快捷键_炸裂“图纸集”功能、高手都在偷偷用的CAD图纸管理神器
  8. 极简风海报作品合集|过目不忘的海报大片,越看越过瘾
  9. Python编程及应用--数据分析与科学计算可视化培训班
  10. Android使用Glide框架加载网络图片(解决无报错图片不显示问题)
  11. Hello World程序的起源与历史
  12. 几种常见的文献管理软件
  13. python复数类型输出实部和虚部_python 获取复数的实部虚部
  14. 5G标准专利,谁执牛耳?
  15. 半导体设备英文缩写_涨知识!晶圆制造主要设备一览。
  16. android edittext过滤表情,EditText过滤emoji表情
  17. ios课堂派怎么提交附件_iOS怎么在课堂派上传文件?
  18. Hibernate延迟加载-by宋迪
  19. 第一节 Python环境搭建
  20. MMU and MPU

热门文章

  1. 国内的微软更新服务器地址,windows update 服务器
  2. java面试常见知识点
  3. c语言某年某月某日的天数,输入某年某月某日,判断这一天是这一年的第几天...
  4. 计算机无法关机和重启怎么办,关于电脑无法关机怎么办
  5. 2021清北学堂储备营Day1
  6. python图片剪裁(图片按四个点坐标剪裁)
  7. IEEE802模型与协议标准
  8. 手机上最好用的五笔输入法_什么手机输入法最实用?目前最受欢迎的3款盘点,你正在用哪款呢...
  9. 浏览器网络异常导致JS文件请求失败的问题及处理
  10. 天朝有一个乞丐姓洪,去天桥要钱 第一天要了1块钱 第二天要了2块钱 第三天要了4块钱 第四天要了8块钱 以此类推 问题: 洪乞丐干10天,收入是多少?