GTK 4 raisonne déjà en boîtes qui grandissent et s'alignent, donc la mise en page vous semblera familière. Ce qui change, c'est la propriété des objets : pas de widget à g_object_unref, pas de propriété à lier, pas de fichier CSS — le thème est une valeur dans le programme, et une seule valeur en vigueur.
| GTK | keal-view |
|---|---|
gtk_label_new("Hi") | label("Salut") |
g_signal_connect(btn, "clicked", …) | button("Go", { -> … }) |
GtkBox, orientation vertical | column([…]) |
gtk_widget_set_hexpand | .grows() |
GtkDrawingArea + draw func | custom({ p -> … }) |
GtkCssProvider, style.css | useTheme(darkTheme()) |
GtkPopover / GtkPopoverMenu | openMenu(x, y, […]) |
Le CSS de GTK est puissant, et c'est aussi un second langage avec ses sélecteurs et sa spécificité. Ici il y a un Theme : une rampe de surfaces, un accent et trois teintes d'état, lus par tous les widgets, y compris ceux que vous écrivez. En changer est un seul appel, et il ne peut pas s'appliquer à moitié.
runApp possède la boucle, et entre deux images elle bloque dans kvWait. Il n'y a pas de GMainContext auquel attacher une source. Pour réveiller l'interface depuis ailleurs, on écrit une Cell ; pour la réveiller sur une horloge, on demande la prochaine image dans tant de millisecondes.
GTK remet à ATK un véritable arbre de véritables widgets, et un lecteur d'écran le lit. keal-view dessine des pixels ; il n'y a pas encore d'arbre d'accessibilité derrière. C'est, à elle seule, la plus grosse chose que GTK vous donne et que ceci ne donne pas.