GTK4

apt install libgtk-4-dev libgtk-4-doc

Hello World

#include <gtk/gtk.h>
 
static void click_an(GtkButton *button, gpointer user_data) {
  g_assert(button);
  gtk_entry_buffer_set_text(gtk_entry_get_buffer(user_data), "an", -1);
}
 
static void click_aus(GtkButton *button, gpointer user_data) {
  g_assert(button);
  gtk_entry_buffer_set_text(gtk_entry_get_buffer(user_data), "aus", -1);
}
 
static void activate(GtkApplication *app, gpointer user_data) {
  GtkWidget *window;
  window = gtk_application_window_new(app);
  gtk_window_set_title(GTK_WINDOW(window), "Demo");
  gtk_window_set_default_size(GTK_WINDOW(window), 200, 200);
  gtk_window_present(GTK_WINDOW(window));
  GtkWidget *box = gtk_box_new(GTK_ORIENTATION_VERTICAL, 30);
  gtk_box_get_homogeneous(GTK_BOX(box));
  GtkWidget *an = gtk_button_new_with_label("An");
  GtkWidget *aus = gtk_button_new_with_label("Aus");
  GtkWidget *text = gtk_entry_new();
  gtk_box_append(GTK_BOX(box), an);
  gtk_box_append(GTK_BOX(box), aus);
  gtk_box_append(GTK_BOX(box), text);
  gtk_window_set_child(GTK_WINDOW(window), box);
  g_signal_connect(GTK_BUTTON(an), "clicked", G_CALLBACK(click_an), text);
  g_signal_connect(GTK_BUTTON(aus), "clicked", G_CALLBACK(click_aus), text);
}
 
int main(int argc, char *argv[]) {
  GtkApplication *app;
  int status;
  app = gtk_application_new("de.devlug.sandbox.demo",
                            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;
}
demo: main.c
	gcc -Wall -Werror -o $@ $< `pkg-config --libs --cflags gtk4`