Qt 信号槽 signals slots 特点 限定符的区别

 

1. 信号槽应用于对象间通信。

2. 信号槽的处理借助于moc(Meta Object Compiler)工具,Q_OBJECT宏通知compiler使用moc工具进行moc扩展。

3. 对象中的信号不是真正的函数,编译时由moc自动产生,返回类型void,槽是函数。

4. 多个被触发者执行顺序随机。

5. 在非跨线程场景下,槽返回后,emit()才返回。此时Object::connect函数的ConncetionType参数为Qt::DirectConnection。

6. 槽参数不能有缺省值。

7. public slots:任何对象的信号或槽都可以触发;protected slots:当前类中的对象与子类中的对象的信号或槽可以触发;private slots:本类中定义的信号或槽可以触发。

8. 信号形参会全部传递给槽,但后者不一定全部接收。

9. moc 不扩展宏,所以信号与槽参数中不能包含宏。

10. 构造函数、嵌套类与友元类,不能在 signals: or slots: 区域内声明。

11. typedef之前,函数指针与模板类不能作为槽的参数。

12. 信号与事件的区别是事件可以触发信号,事件关注控件的实现,而信号关注其使用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值