信号和槽机制

转自(稍作修改):http://devbean.blog.51cto.com/448512/193918

信号/槽机制

信号槽机制是Qt编程的基础。通过信号槽,能够使Qt各组件在不知道对方的情形下能够相互通讯。这就将类之间的关系做了最大程度的解耦。
槽函数和普通的C++成员函数没有很大的区别。如果要说区别,那就是,槽函数可以和一个信号相连接,当这个信号发生时,它可以被自动调用。

connect语句

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

sender和receiver都是QObject类型的,singal和slot都是没有参数名称的函数签名。SINGAL()和SLOT()宏用于把参数转换成字符串。

  1. 一个信号可以和多个槽相连:槽会一个接一个的被调用,但是它们的调用顺序是不确定的.
  2. 多个信号可以连接到一个槽:只要任意一个信号发出,这个槽就会被调用。
  3. 一个信号可以连接到另外的一个信号:当第一个信号发出时,第二个信号被发出。除此之外,这种信号-信号的形式和信号-槽的形式没有什么区别。
  4. 槽可以被取消链接:disconnect(),这种情况并不经常出现,因为当一个对象delete之后,Qt自动取消所有连接到这个对象上面的槽。
  5. 为了正确的连接信号槽,信号和槽的参数个数、类型以及出现的顺序都必须相同;
    如果信号的参数多于槽的参数,那么这个参数之后的那些参数都会被忽略掉,
  6. 只要我们继承QObject类,就可以使用信号槽机制。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值