La librairie graphique GTK pour le C (gcc / GNU/Linux)

GTK est une bibliothèque libre de fonctions graphiques parmi les plus importantes en GNU/Linux, initialement écrite pour The Gimp (Gimp ToolKit) et utilisée par de nombreux bureaux comme Cinnamon, GNOME, Lxde, Mate, ROX, Xfce… Il est possible que cette page s’étoffe, mais pour se lancer dans la compilation de programmes développés en C en utilisant l’interface graphique GTK4, il est utile de prendre connaissance de ces quelques lignes.

Compilation

Avant toute chose, il faut voir si votre système est apte à compiler cette application minimale.

Vérifier que votre système possède les paquets libgtk-4 ou libgtk-4-1.

Sauvegardez le code ci-dessus dans un fichier en simple texte (gedit, kwrite, notepad++..) en lui donnant le nom exemple.c :

#include <gtk/gtk.h>

/*
  exemple simplifié inspiré de https://docs.gtk.org/gtk4/getting_started.html
*/

/* Dresse une fenêtre contenant un bouton de sortie */
static void activate (GtkApplication *app, gpointer user_data)
  {
  GtkWidget *fenetre =gtk_application_window_new (app) ;
  GtkWidget *bouton =gtk_button_new_with_label (" Cliquer pour quitter ") ;
  gtk_window_set_child (GTK_WINDOW (fenetre), bouton) ;
  g_signal_connect_swapped (bouton, "clicked", G_CALLBACK (gtk_window_destroy), fenetre) ;
  gtk_widget_show (fenetre) ;
  }

/* appelle la fonction */
int main (int argc, char **argv)
  {
  int status ;
  GtkApplication *app =gtk_application_new ("org.gtk.example", G_APPLICATION_DEFAULT_FLAGS) ;
  g_signal_connect (app, "activate", G_CALLBACK (activate), NULL) ;
  status =g_application_run (G_APPLICATION (app), argc, argv) ;
  g_object_unref (app) ;
  return status ;
  }

La commande suivante compile le code-source exemple.c pour générer l’application exemple :

gcc exemple.c -o exemple  $(pkg-config --cflags --libs gtk4)

Après compilation (un message en rouge est fatal à la compilation, en jaune… ça dépend), saisir ./exemple dans une console devrait afficher une fenêtre minimale avec un bouton à cliquer pour fermer la fenêtre et l’application.

Documentation

GNU/Linux Debian 12 installe le paquetage libgtk-4-doc à l’adresse /usr/share/doc/libgtk-4-doc/gtk4/index.html, qui équivaut à https://docs.gtk.org/gtk4/. Il s’agit de références assez peu explicites.

Debian 12 Bookworm permet l’installation du paquet gtk-4-examples, placé en /usr/share/docs/gtk-4-examples/.

Note : la documentation https://fr.wikibooks.org/wiki/Programmation_GTK pour GTK4 n'est pas à jour.