Qt signals and slots work in a very similar way. When a signal is emitted, it causes a slot to be activated.
The slot can then emit a signal of its own, which will then trigger further slots, and so on until the signal is silenced.
Slotting is particularly useful for handling asynchronous events. For example, you might have an event handler that updates a user interface whenever a new email arrives. The event handler might start by checking to see if there are any new emails.
If there are, it might call an updateMessage() slot, which would show the user the new emails. If there are no new emails, the updateMessage() slot would simply return.
This type of architecture is easy to manage and is flexible enough to handle a wide range of situations. Because slots can be triggered by any signal, you can easily add support for new signals without affecting the rest of your application.