Atualmente, a maioria dos kits de ferramentas da GUI usa o modelo Sinais + Slots. Foi Qt e GTK +, se não estou errado, quem foi o pioneiro.
Você sabe, os widgets ou objetos gráficos (às vezes até os que não são exibidos) enviam sinais para o manipulador de loop principal. O manipulador de loop principal chama os eventos , retornos de chamada ou slots atribuídos a esse widget / objeto gráfico. Geralmente, existem virtual
manipuladores de eventos padrão (e na maioria dos casos ) já fornecidos pelo kit de ferramentas para lidar com todos os sinais predefinidos; portanto, diferentemente dos projetos anteriores, em que o desenvolvedor teve que escrever todo o loop principal e o manipulador para cada mensagem. (pense em WINAPI), o desenvolvedor precisa se preocupar apenas com os sinais de que precisa para implementar novas funcionalidades.
Agora, esse design está sendo usado na maioria dos kits de ferramentas modernos, até onde eu sei. Existem Qt, GTK +, FLTK etc. Há Java Swing. O C # ainda possui um recurso de idioma (eventos e delegados) e o Windows Forms foi desenvolvido nesse design. De fato, na última década, esse design para programação de GUI se tornou uma espécie de padrão não-escrito. Uma vez que aumenta a produtividade e fornece maior abstração.
No entanto, minha pergunta é:
Existe algum projeto alternativo, paralelo ou prático para a programação GUI moderna?
ou seja, o design de Sinais + Slots, o único prático na cidade? É possível fazer a programação da GUI com outro design? Existem kits de ferramentas da GUI modernos (de preferência bem-sucedidos e populares) criados em um design alternativo?
std::function
, não um sinal assíncrono. Além disso, o WinAPI não fornecemDefWindowProc
que processa mensagens do Windows como uma implementação padrão. Então, eu vou postar que sua pergunta é baseada em lógica falha.