Forum und email

Eventos

Existe muita diferença entre eventos e sinais, e ambos deles estão longe de ser intercambiáveis.

Um sinal é emitido por uma instância de GtkObject em resposta a alguma ação pelo usuário ou uma instrução de uma função ou metodo.

Eventos por outro lado, são um feixe continuo de impulsos que comunicam mensagens sobre modificações do ambiênte no sistema de janelas. Estes são de baixo nível, isto significa que qualquer pequena modifcação no ambiênte conta cmo um evento.

Não é possível conectar um callback a um evento diretamente.

Nós usamos o sinal enter-notify-event no nosso exemplo anterior. Mas certamente parece que deve ser um evento, não é? Vários dos eventos tem importantes aplicações e é normalmente necessário ser capaz de conectar callback a eles. para este fim, o PHP-GTK 2 provê vários sinais conhecidos como sinais de evento (como enter-notify-event e leave-notify-event) que atualmente são emcapsulamento sobre os eventos em sí. Estes são maneiras de descrever eventos em termos de sinais assim nós podemos conectar callbacks a eles.

Quando você precisar capturar um evento, você provavelmente irá encontar um sinal equivalente para trabalhar. No caso de você não encontarr, é possível para todos os widgets que tenham o seu próprio GdkWindow capturar eventos importantes para sí. Para aqueles widgets que não tem GdkWindow, eles devem ser emcapsulados em um GtkEventBox para ser capaz de capturar eventost. Capturar um evento não é uma tarefa fácil, e esta além do escopo deste tutorial. Como eu disse antes, você irá provavelmente encontarr um sinal equivalente para trabalhar de qualquer maneira, então não se preocupe muito com eventos.