【QT】QT的学习:信号跟槽

  信号signals跟槽slots是QT的专有机制,跟c++中的public、private、protected一样用于说明信号跟槽函数。

  当信号对其客户或者所有者发生的内部状态发生改动,信号被一个对象发射。槽是用来接收发射的信号的,当信号被发送之后,槽会被一个一个的执行,没有顺序随机的。信号一般是由定义过这个信号的类或者派生类来发送。

  QT的signals关键字已经指出了进入信号的声明区域,signals的区域内的函数必须是void类型的,并且不能加public、private、protected进行修饰;槽函数就是基本的普通函数。可以加上public、private、protected进行修饰。

  信号跟槽的关联一般是通过connect进行关联。connect的函数声明为:

 bool QObject::connect ( const QObject * sender, const char * signal, const QObject * receiver, const char * member )

  作用是:将发射者的信号函数跟接收对象的槽函数关联起来。如果想要去关联函数则使用:

  bool QObject::disconnect ( const QObject * sender, const char * signal, const Object * receiver, const char * member )

  注意:

  1.宏定义以及函数指针不能用于信号跟槽的参数,信号跟槽也不能有缺省参数。

  2.在使用connect的时候要保证信号的参数要大于槽的参数的数量。

 3. 构造函数不能在signals以及slots中声明。

4.只有集成了QObject的类才能使用信号跟槽,因此如果想要在勒种定义声明信号跟槽,那这个类就必须继承QObject类。例如:class A : public QObject,凡是QObject的类必须在类的开始写上Q_OBJECT,不管这个类是不是使用信号槽,只要这个类是继承了QObject,就必须加上宏Q_OBJECT

5.使用信号signals来标记信号函数,信号函数在类是void类型的,是一个函数声明,不需要自己实现,这都是由QT自己实现的。


推荐一个自己感觉比较好的学习博客:

http://blog.csdn.net/louis_815/article/details/54286544


  


 

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看rEADME.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看rEADME.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值