Qt使用的信号和槽机制
所谓信号槽,实际就是观察者模式。当某个事件发生之后,比如,按钮检测到自己被点击了一下,它就会发出一个信号(signal)。如果有对象对这个信号感兴趣,它就会使用连接(connect)函数,将想要处理的信号和自己的一个函数(称为槽(slot))绑定来处理这个信号。也就是说,当信号发出时,被连接的槽函数会自动被回调。这就类似观察者模式:当发生了感兴趣的事件,某一个操作就会被自动触发。
- 创建一个信号,其中创建信号需要一些规则。
- 当需要调用外部函数时,发送一个信号,
- 此时与该信号相关联的槽便会被调用,槽其实就是一个函数,当然要使函数成为槽是有一定规则的。槽与信号的关联需要由程序员来完成。
- 在Qt中,信号和槽都需要位于类之中。
- 信号和槽其实是观察者模式的一种实现
创建关联
- Signal
- Slot
- connect