Qt中,Signal和Slot被用于不同对象之间的通信。Signal和Slot机制与传统的Callback类似,它实际上是对传统的Callback机制进行封装,使得对象之间的通信更安全,而且使用更方便。
Qt中,开发者实现Signal和Slot机制主要用到如下几个关键词: Signals, Slots, emit。
如果在类中定义了Signal和Slot,那么,在创建两个对象之后,只需要将两个对象用QObject::connect()方法连接起来,两个对象之间就能进行通信。如果需要取消两个对象之间的连接,只需要调用QObject::disconnect()方法。
在程序中,Slots关键词声明过的函数不仅可以由Signal来触发,而且可以直接当作普通函数来调用。
Signal和Signal之间也可以进行连接。