A signal is emitted by an object to indicate that some event has occurred. For example a signal might indicate that the text in a text box has been edited, or that a new piece of data has arrived over the network. A signal can be connected zero, one or more objects that are interested to know about these events. The function in the receiving object is a slot and can do whatever it like in response to the signal, for example copy the edited text somewhere or process the received data. The object issuing the signals does not need to know anything about the objects receiving the signal: the objects are considered loosely coupled.

Signals and slots are the Qt answer to the Observer Pattern.