信号与槽函数是我们学习QT必备的基础知识,今天跟大家分享我学习QT的一些总结吧。

信号槽机制是Qt编程的基础。通过信号槽,能够使Qt各组件在不知道对方的情形下能够相互通讯。

槽函数和普通的C++成员函数没有很大的区别。它们也可以使virtual的;可以被重写;可以使public、protected或者private的;可以由其它的C++函数调用;参数可以是任何类型的。如果要说区别,那就是,槽函数可以和一个信号相连接,当这个信号发生时,它可以被自动调用。

信号与槽函数的连接我们可以用connect函数:

connect(sender,SIGNAL(signal()),receive,SLOT(slot()));

需要注意的几点问题:

1、一个信号可以和多个槽相连(槽函数被调用的顺序是随机的)

connect(sender,SIGNAL(signal()),this,SLOT(slot_1()));connect(sender,SIGNAL(signal()),this,SLOT(slot_2()));

2、多个信号可以连接同一个槽函数

connect(sender,SIGNAL(signal_1()),this,SLOT(slot()));connect(sender,SIGNAL(signal_2()),this,SLOT(slot()));

3、一个信号可以连接另外一个信号

connect(sender,SIGNAL(signal_1()),this,SIGNAL(signal_2()));

4、信号与槽函数之间的连接可以被取消

disconnect(sender,SIGNAL(signal()),this,SLOT(slot()));

5、信号与槽函数的参数个数、类型以及出现顺序必须一致,另外,当信号的参数个数多于槽函数时,信号多出的参数将会被忽略掉

connect(sender,SIGNAL(signal(int,const Qstring &)),this,SLOT(slot(int b,const Qstring &)));connect(sender,SIGNAL(signal(int,const  Qstring &)),this,SLOT(slot(int)));//此时const  Qstring &将会被忽略

6、宏定义不能用在signal和slot的参数中

7、函数指针不能作为信号与槽函数的参数,同时信号与槽函数也不能有缺省参数

8、友元声明不能位于信号或槽函数声明区内

9、信号与槽不能携带模板类参数

10、嵌套的类不能位于信号与槽函数区域内,也不能有信号或者槽函数

在使用信号与槽机制的时候,要注意避免陷入死循环,即在槽函数中再次发送所接收到的信号。

转载于:https://blog.51cto.com/11709921/1787670

QT学习小结之信号与槽相关推荐

  1. Qt编程中的信号和槽机制

    Qt编程中的信号和槽机制 在使用自定义类创建一个按钮之后,只能看到一个按钮的图形,但是使用鼠标点击并无任何反应,下面想要实现一个"点击按钮可以关闭窗口"的功能. 关闭窗口的功能可以 ...

  2. Python Qt GUI设计:信号与槽的使用方法(基础篇—7)

    目录 1.信号与槽的概念 2.信号与槽的基础函数 2.1.创建信号函数 2.2.连接信号函数 2.3.断开信号函数 2.4.发射信号函数 3.信号和槽的使用方法 3.1.内置信号与槽的使用 3.2.自 ...

  3. Qt工作笔记-使用信号与槽让两个界面进行数据通信

    今天在项目中,发现有一个十分重要的功能,就是2个界面进行数据通信. 记得1年多前,刚刚学习Qt,对这个无法理解,然后经过一年多的学习和理解,在此把自己学习的感悟和知识在此总结下. 下面是使用emit ...

  4. 【QT编程】QT对象间通讯——信号与槽

    01.目录 文章目录 01.目录 02.信号与槽介绍 03.信号与槽机制 04.信号(Signal) 05.槽函数(Slot) 06.一个示例 07.一个真实的示例 08.信号和槽使用默认参数 09. ...

  5. Qt多线程中的信号与槽

    文章目录 1 多线程中的信号与槽 2 对象的依附性 2.1 对象的依附性 2.2 开启线程事件循环 2.3 线程事件循环的结束 2.4 设计实例 3 信号与槽的连接方式 3.1 Qt::DirectC ...

  6. Qt修炼手册4_信号与槽

    1.前言 为了处理个体间的通信事件,Qt提供了信号与槽.信号与槽不仅可以处理GUI上发生的事件,也可以实现个体间的数据通信.值得深入把握. 2.信号与槽 信号与槽是一种用于对象间通信的机制.为了用户在 ...

  7. QT对象树、信号和槽机制

    文章目录 一 .对象树是什么? 二.信号和槽的基本概念 2.1 信号 2.2 槽 2.3 松散耦合 2.4 特点 三.示例 总结 一 .对象树是什么? 对象树是由父类和若干子类对象组成,而子类也可以由 ...

  8. Qt线程间通信-信号与槽通信

    线程间通信: 1.自定义事件:postEvent(): 2.信号与槽[本质也是通过自定义事件实现的] 注意:每个线程都有自己的事件循环 下面先说明下信号与槽的通信: 下面这个程序的运行截图 模拟下载! ...

  9. Qt静态函数中的信号和槽问题

    目录 介绍 Qt中的信号和槽 一般形式 当发送信号的地方为静态函数时 存在问题 解决方案 介绍 信号和插槽用于对象之间的通信.信号和插槽机制是Qt的一个核心特性,可能是与其他框架提供的特性最为不同的部 ...

最新文章

  1. linux命令 iperf-网络性能测试工具
  2. ctypes python3_聊聊Python ctypes 模块
  3. JSON字符串的解析
  4. 长沙医学院计算机系怎么样,长沙医学院有哪些专业及什么专业好
  5. 元宇宙iwemeta: 克林顿指出,加密货币与生物恐怖主义有相同的威胁
  6. 量化金融模型的基本Roadmap
  7. 系统烧写方法(MfgTool烧写工具)
  8. react中类组件this指向
  9. Android平台使用Camera2(5.0+)替代过时的Camera
  10. 95-36-020-ChannelHandler-ChannelHandler
  11. Python函数之进阶
  12. 快速解决低版本Xcode不支持高版本iOS真机调试问题
  13. ubuntu+i3wm桌面
  14. 通达OA2017工作流数据报表查询全部流程
  15. stm8 低功耗 RTC唤醒
  16. BT文件分享服务器,bt是什么意思服务(bt资源库)
  17. 企业邮箱账号,如何在foxmail上创建
  18. 一个关于创业不错的博客
  19. 从菜鸟到架构师(六)
  20. 【密码学】费马小定理素性检测(C++代码实现)

热门文章

  1. JavaScript getBoundingClientRect()
  2. 快速创建UI控件的 方法 ,值得总结1
  3. lua和torch的安装
  4. CSS样式表操作及选择器定义
  5. 论文解读——An Analysis of Scale Invariance in Object Detection – SNIP
  6. html转pdf后修改,pdf转换器smallpdf转成HTML后怎么排版
  7. 相机java程序_以编程方式在Android上用相机拍照
  8. 编译原理论文_我的第一篇论文
  9. 无法将多信息文本转换为url_实体链接:信息抽取中的NLP的基础任务
  10. Java jni 底层_JAVA语言语言调用底层语言的技术JNI解析