GTK 4: Bouw Moderne GUI-applicaties
Wil je een desktop applicatie met een grafische interface (GUI) bouwen voor Linux, Windows of macOS? Dan kom je al snel GTK tegen. GTK is een populaire open-source toolkit die veel wordt gebruikt in het Linux-ecosysteem, bijvoorbeeld voor applicaties op de GNOME desktop.
Oorspronkelijk ontwikkeld voor de GIMP image editor in 1998, is GTK uitgegroeid tot één van de belangrijkste libraries voor Linux desktop applicaties. In dit artikel leggen we uit wat GTK 4 is, hoe het werkt en hoe je je eerste GTK-applicatie schrijft.
Wat is GTK?
GTK (GIMP Toolkit) is een library voor het bouwen van grafische interfaces. Hiermee kun je onderdelen van een interface maken, zoals:
- Vensters
- Knoppen
- Tekstvelden
- Menu’s
- Lijsten
Deze onderdelen worden widgets genoemd. Door widgets te combineren bouw je een volledige applicatie. GTK werkt op meerdere platforms:
- Linux
- Windows
- macOS
GTK is geschreven in C, maar je kunt het ook gebruiken met talen zoals:
- Python
- Rust
- JavaScript
- C++
Wat is nieuw in GTK 4?
GTK 4 is de moderne versie van de toolkit, ontworpen voor huidige desktopomgevingen.
Belangrijke verbeteringen zijn:
Snellere rendering
GTK 4 gebruikt een scene graph renderer via de GTK Scene Kit (GSK). Dat betekent:
- Betere performance
- Soepelere animaties
- Efficiënter tekenen van widgets
Betere ondersteuning voor moderne Linux-systemen
GTK 4 is ontworpen met Wayland in gedachten, de moderne opvolger van X11. Dit zorgt voor:
- Betere veiligheid
- Verbeterde display handling
- Ondersteuning voor high-DPI schermen
Modern layout systeem
In oudere GTK versies gebruikte je vaak containers zoals GtkHBox en GtkVBox. GTK 4 gebruikt een moderner layout systeem waardoor interfaces flexibeler en eenvoudiger aan te passen zijn.
CSS styling
Widgets kunnen worden gestyled met een CSS-achtig systeem. Bijvoorbeeld:
button {
background: #4CAF50;
color: white;
}
Belangrijke onderdelen van GTK
- GLib: Basis library met datastructuren, event loops en string functies.
- GObject: Object-systeem van GTK met type- en signal-systeem.
- GDK: Abstractielaag voor windowing, maakt GTK cross-platform.
- GSK: Rendering engine voor widgets op het scherm.
Eerste GTK 4 applicatie (C)
#include <gtk/gtk.h>
static void activate(GtkApplication *app, gpointer user_data)
{
GtkWidget *window;
GtkWidget *button;
window = gtk_application_window_new(app);
gtk_window_set_title(GTK_WINDOW(window), "Mijn eerste GTK app");
gtk_window_set_default_size(GTK_WINDOW(window), 400, 200);
button = gtk_button_new_with_label("Klik mij");
gtk_window_set_child(GTK_WINDOW(window), button);
gtk_window_present(GTK_WINDOW(window));
}
int main(int argc, char **argv)
{
GtkApplication *app;
int status;
app = gtk_application_new("com.example.GtkApp", 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;
}
Compileer met:
gcc main.c `pkg-config --cflags --libs gtk4` -o gtk-app
Run vervolgens:
./gtk-app
GTK gebruiken met Python
import gi
gi.require_version("Gtk", "4.0")
from gi.repository import Gtk
class App(Gtk.Application):
def __init__(self):
super().__init__(application_id="com.example.GtkApp")
def do_activate(self):
window = Gtk.ApplicationWindow(application=self)
window.set_title("GTK Python Example")
window.set_default_size(400, 200)
button = Gtk.Button(label="Klik mij")
window.set_child(button)
window.present()
app = App()
app.run()
Waarom GTK 4 gebruiken?
- Linux desktop applicaties bouwen
- Open-source GUI toolkit gebruiken
- GPU-accelerated rendering
- Cross-platform software ontwikkelen
Conclusie
GTK is sinds 1998 een belangrijke toolkit voor grafische applicaties. GTK 4 biedt moderne rendering, Wayland-ondersteuning en een flexibel layout systeem. Met slechts een paar regels code kun je een werkende GUI-applicatie maken.






















Geef een reactie