La majorité des boîtes à outils GUI utilisent de nos jours le modèle Signals + Slots. Ce sont Qt et GTK +, si je ne me trompe pas, qui ont été les pionniers.
Vous savez, les widgets ou objets graphiques (parfois même ceux qui ne sont pas affichés) envoient des signaux au gestionnaire de boucle principale. Le gestionnaire de boucle principale appelle ensuite les événements , rappels ou emplacements attribués pour ce widget / objet graphique. Il existe généralement des gestionnaires d' virtual
événements par défaut (et dans la plupart des cas ) déjà fournis par la boîte à outils pour gérer tous les signaux prédéfinis, par conséquent, contrairement aux conceptions précédentes où le développeur devait écrire l'intégralité de la boucle principale et du gestionnaire pour chaque message lui-même (pensez à WINAPI), le développeur n'a qu'à se soucier des signaux dont il a besoin pour implémenter de nouvelles fonctionnalités.
Maintenant que je sache, cette conception est utilisée dans la plupart des boîtes à outils modernes. Il y a Qt, GTK +, FLTK etc. Il y a Java Swing. C # a même une fonction de langue pour cela (événements et délégués), et Windows Forms a été développé sur cette conception. En fait, au cours de la dernière décennie, cette conception pour la programmation GUI est devenue une sorte de norme non écrite. Puisqu'il augmente la productivité et fournit une plus grande abstraction.
Cependant, ma question est:
Existe-t-il une conception alternative, parallèle ou pratique pour la programmation graphique moderne?
c'est-à-dire que la conception Signals + Slots est la seule pratique en ville? Est-il possible de faire de la programmation GUI avec une autre conception? Existe-t-il des boîtes à outils graphiques modernes (de préférence réussies et populaires) construites sur une conception alternative?
std::function
, pas un signal asynchrone. En outre, le WinAPI ne fournitDefWindowProc
qui traite les messages Windows comme une implémentation par défaut. Je vais donc affirmer que votre question est basée sur une logique défectueuse.