QT  信号与槽 最简单例子

main.cpp 和 my_head.h源码:

[cpp] view plaincopy
  1. #ifndef MY_HEAD_H
  2. #define MY_HEAD_H
  3. #include <stdio.h>
  4. #include <QObject>
  5. //EastonWoo
  6. class A : public QObject   //QObject::connect是在QObject定义的,继承一下。 <span style="color:#ff0000;">注意: 如果类A 本身就已经继承过QObject了,就不用再继承了,你可以这样查看是否已继承过:把光标移动到类A,右键,选择"Open Type Hierarchy",或直接按Ctrl+Shift+T,就可以查看到类的继承关系了。</span>
[cpp] view plaincopy
  1. {
  2. Q_OBJECT               //信号和槽要用到的宏,要加上
  3. public:
  4. void test()
  5. {
  6. send_msg();
  7. }
  8. signals:              //信号关键字
  9. void send_msg();  //发射信号函数,带的参数必须和槽一样。声明一下就可以了。
  10. };
  11. class B : public QObject
  12. {
  13. Q_OBJECT
  14. public slots:         //槽关键字
  15. void recv_msg()  //
  16. {
  17. printf("hello\n");
  18. }
  19. };
  20. //值得注意的是,凡是信号和槽的定义关键字都在头文件里定义
  21. //如Q_OBJECT,signal:,public slots:,声明如void send_msg();void recv_msg();
  22. #endif // MY_HEAD_H
[cpp] view plaincopy
  1. #include "my_head.h"
  2. //EastonWoo
  3. int main()
  4. {
  5. printf("start...\n");
  6. A send_a;
  7. B recv_b;
  8. QObject::connect(&send_a,SIGNAL(send_msg()),&recv_b,SLOT(recv_msg()));
  9. send_a.test();
  10. return 0;
  11. }

qmain一下:

运行结果:

/home/user/hello/hello 启动中...
start...
hello
/home/user/hello/hello 退出,退出代码: 0
 {1 ?}

QT 信号与槽 最简单例子相关推荐

  1. Qt 信号和槽 事件处理

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

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

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

  3. QT信号和槽函数学习笔记

    //connect 函数有4个参数 分别是 发送者 信号.接受者 ,槽 //connect(sender,signal,receiver,slot) /* * 信号和槽 * 信号 就是一个普通的函数 ...

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

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

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

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

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

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

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

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

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

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

  9. qt信号与槽连接的书写规范

    环境 : vs2015 + qt  5.9.9 Qt信号和槽连接失败原因主要有以下几点: 1.槽函数并没有声明在类的public slots(或private slots或protected slot ...

最新文章

  1. VS2010 加入OpenCV 提示 0xc000007b 的错误
  2. javaFX的控制台实现
  3. 【CSON原创】HTML5游戏框架cnGameJS开发实录
  4. java中用iterator去检查最大值_Java中的Iterator vs forEach
  5. 42.Android之ListView中ArrayAdapter简单学习
  6. MySQL 5.7 LOGICAL_CLOCK 并行复制原理及实现分析
  7. bootstrap3 表单构建器_FastReport.NET报表设计器连接到OracleDB关系数据库
  8. node oauth2验证_如何设置和使用护照OAuth Facebook身份验证(第1部分)| Node.js
  9. 使用帅气的cordic算法进行坐标系互转及log10的求解
  10. 【SpringCloud】Spring cloud Alibaba Sentinel 降级规则
  11. android 课堂讨论内容,Android端课堂交互应用研究与实现
  12. Remote Desktop Connection Manager2.7 安装+基本使用
  13. 17.CRT的绿色版安装和使用。
  14. 3dmax实例教程-使用3ds Max 创建一个完整的场景
  15. Map获取key,value的方法
  16. ros软路由防火墙(双线路、日志配置)
  17. 怎样设定目标(三)—— 目标设定前的准备
  18. JAVA计算机毕业设计网上图书销售系统(附源码、数据库)
  19. 写给二线城市【Python工程师】的成长指南
  20. ResNet深度残差网络

热门文章

  1. 【Android 插件化】Hook 插件化框架 ( 创建插件应用 | 拷贝插件 APK | 初始化插件包 | 测试插件 DEX 字节码 )
  2. 【Flutter】Flutter 布局组件 ( FractionallySizedBox 组件 | Stack 布局组件 | Positioned 组件 )
  3. 【鸿蒙 HarmonyOS】Ability 中使用 XML 布局文件 绘制布局及 UI 组件
  4. 手机用appnium,web自动化用eclips+webdriver2
  5. 理解JAVA与C的运行机制
  6. 问候Maven3(笔记一)
  7. Advanced Transact-SQL for SQL Server 2000 学习译文
  8. Hyperic HQ HQU 插件开发指南
  9. 使用SqlBulkCopy数据导入和复制
  10. AOE网(求关键路径)(c/c++)