QT 信号槽

宏: SIGNAL, SLOT
关键字: signals, slots, emit

  • SLOT 方法是阻塞的
  • 类的定义中需要包含宏Q_OBJECT
  • 要想一个方法放入 SLOT(XXX) , xxx 一定要在声明时指定 signals 修饰;

使用:

QObject::connect(sender, SIGNAL(signal), receiver, SLOT(slot));
绑定的 signal 和 slot 方法参数要类型一致;或自动把signal比slot多出的参数省略;
disconnect 断开

自定义信号/槽

注意点
  • 自定义类继承 QObject
  • 声明宏 Q_OBJECT
  • 函数指针不能作为信号或槽的参数。
  • 信号与槽不能有缺省参数。
signals 的注意点
  • 表示信号
  • signals 修饰的方法不能写实现, 只有声明, 实现由moc自动生成;
  • 不可以被 public、private和protected等限定符修饰;
  • signals 函数信号只能由该类和其子类 emit(发射) ;
  • 信号回调槽是阻塞的
slots 注意点
  • 槽, 接收信号后回调的方法
  • 可以被 public、private和protected等限定符修饰;
  • 多个槽绑定了同一个信号, 他们的回调顺序是随机的;

0 Comments
Leave a Reply