环境 : vs2015 + qt  5.9.9

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

2.信号和槽之间存在参数传递,但是二者的参数数量或者类型不一致(信号里的参数数量可以多于槽函数里的参数数量,但是二者都有的参数,类型必须对应);

3.信号和槽之间有参数传递,但是使用connect的时候在槽函数或者信号或者二者同时加入了形参,比如下面的两个connect,第一个连接因为有形参,不会连接成功。第二个会连接成功。

// connect 1
connect(sender, SIGNAL(sendMessage(int a)), receiver, SLOT(getMessage(int b)));
// connect 2
connect(sender, SIGNAL(sendMessage(int)), receiver, SLOT(getMessage(int)));

4.信号和槽之间存在自定义参数传递,但是传递的类型没有注册。什么叫做自定义参数呢?在传递int,double,char,bool,float等类型的时候没问题,但是传递比如QList类,或者自定义的结构体、类等时,连接将会失败。

5:connect函数书写不规范,以下2种方式是对的.

a) 含参数的信号与槽

connect(this, SIGNAL(CamEvent_Sig(EEVENT_CODE)), m_pCameraObj, SLOT(CamEvent_Slot(EEVENT_CODE)), Qt::ConnectionType::UniqueConnection);

不要随意的使用类名::函数名、->、.等,不要随意多写或者少写()

a) 不含参数的信号与槽

connect(this, SIGNAL(test_Sig()), this, SLOT(test_Slot()), Qt::ConnectionType::UniqueConnection);

不要随意的使用类名::函数名、->、.等,不要随意多或者少()

qt信号与槽连接的书写规范相关推荐

  1. shared_ptr 和 make_shared 的使用(以及qt信号和槽连接)

    std::shared_ptr 是一种智能指针(本身就是一个对象,一个对象,一个对象,不是原始指针,重要的事情说三遍),指向一个对象.它能够记录多少个 shared_ptr 共同指向一个对象,从而消除 ...

  2. Qt信号和槽连接方式的选择

    看了下Qt的帮助文档,发现connect函数最后还有一个缺省参数. connect函数原型是这样的: QMetaObject::Connection QObject::connect(const QO ...

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

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

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

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

  5. Qt 信号和槽 事件处理

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

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

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

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

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

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

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

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

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

最新文章

  1. spring控制事务:声明式事务(注解)
  2. [机器学习] PMML实现模型上线
  3. 计算机网络上网时间,电脑怎么限制上网时间
  4. 辅助的写与数据库交互的XML文件的类
  5. 使用wireshark抓包,本地环回测试通信数据已经通过SM4国密算法加密
  6. x3850x5启动代码c2_代码小时x 2,080
  7. python全屏模式 spider_我可以使用PIL以全屏模式显示图像吗?
  8. 翻译:使用 AWS Deep Racer 的日志分析工具
  9. html表格列文字自动换行,Table文字自动换行
  10. 计算机软件自启动设置,设置开机启动项,详细教您电脑如何设置开机启动项
  11. JAVA藏宝阁游戏交易系统计算机毕业设计Mybatis+系统+数据库+调试部署
  12. 2022CCPC网络预选赛c题Problem C. Guess
  13. [Swust OJ 643]--行列式的计算(上三角行列式变换)
  14. R语言学习笔记之str函数
  15. java导出的excel数字过长_用POI导出excel时,较长的数字不想被自动变为科学计数法的解决方式(转)...
  16. 以太坊(Ethereum) - 网络节点
  17. 2019华为新年贺词
  18. 数据库的并运算和差运算
  19. Python输出绝对值
  20. 计算机网络专业规划建设,计算机网络工程专业建设

热门文章

  1. 如何从官网下载apache-apollo-1.7.1
  2. 【原创】大三体会篇(中)
  3. 上海清晖管理咨询有限公司创始人傅永康受邀为第十二届中国PMO大会演讲嘉宾
  4. 互动拍照 — GIF拍照
  5. 0.96寸OLED显示 图片
  6. enzyme的三种渲染方式
  7. java mule,ESB MULE将参数传递给java方法
  8. 520来了想要表白的看这里,教你用python画不同类型的心形图虏获芳心,值得收藏!!
  9. 四、批号及制造批序号管理篇
  10. 区块链游戏崩盘的前兆有哪些?一文为你分享。