Sinais e slots
"Sinais e slots" é uma construção de linguagem de programação, introduzida no Qt para a comunicação entre objetos[1] que torna fácil implementar o padrão observer de maneira compacta. O conceito é que widgets de interfaces gráficas podem enviar sinais contendo informações de eventos que podem ser recebidos por outras widgets / controles usando funções especiais conhecidas como slots. Isso é semelhante às callbacks em C/C++ (ponteiros de função), mas o sistema de sinais/slots garante que os argumentos da callback tenham os tipos corretos.
O sistema de sinais e slots se encaixa bem com a forma em que interfaces gráficas de usuário (GUI) são projetadas. Mas esse sistema também pode ser usado para usos diferentes de GUIs, como por exemplo, notificação de eventos assíncronos (incluindo sockets, pipes, dispositivos seriais, etc.) ou para associar eventos de tempo limite com as devidas instâncias de objeto e métodos ou funções. É fácil de usar e sem a necessidade de escrever código para registro/cancelamento/invocação, porque o Qt Meta Object Compiler (MOC, ou "compilador de metaobjetos") gera automaticamente a infra-estrutura necessária.
Uma metáfora comumente usada é uma planilha. Uma planilha tem células que observam célula(s) de origem. Quando a célula de origem for alterada, as células dependentes são atualizados a partir do evento.