Programação em GUI/Eventos, sinais, slots e callbacks

Origem: Wikilivros, livros abertos por um mundo aberto.

A comunicação entre os diversos componentes (programa raiz, widgets, mouse, teclado, etc) que formam um programa em interface gráfica do usuário é feita através de eventos, sinais, slots e callbacks.

Normalmente, o programa fica "dormindo" no programa raiz até que ocorra algum evento.

Essa passagem de controle é feita usando a idéia de sinais. Quando um evento ocorre, como o pressionamento de um botão do mouse, o sinal apropriado será emitido pelo widget que foi pressionado. Há sinais que todos os widgets herdam (por exemplo, um sinal para destruir o widget pai), e há sinais específicos de um certo widget ou conjunto de widgets.

Para fazer um botão realizar uma ação, configuramos um tratador de sinal para capturar esses sinais e chamar a função apropriada. Isso é feito com uma função em que um dos seus argumentos é chamado de callback. A exceção notável é o toolkit Qt, que, em vez de callbacks, faz a conexão entre os widgets através de sinais e slots [1]

Exemplos[editar | editar código-fonte]

Em outras línguas:

Ver também[editar | editar código-fonte]

Referências

  1. Signals and Slots - documentação (em inglês) do Qt