Programmierung
Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:
Dieser Artikel ist größtenteils für alle Ubuntu-Versionen gültig.
Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:
GTK+ ist für nahezu jede Plattform verfügbar. Es läuft auf allen unixoiden Systemen (Unix, GNU/Linux, BSD, Mac OS X), auf Windows und auf mobilen Geräten. Eine Portierung gestaltet sich äußerst leicht, da GTK+ seine Widgets selber zeichnet und somit nur grundlegende Zeichenoperationen angepasst werden müssen. Die Kehrseite ist, dass sich GTK+ auf einigen Plattformen fremd anfühlt, weil native Widgets nur nachgeahmt und nicht nativ gerendert werden.
Obwohl es in C umgesetzt wurde, ist die Bibliothek hochgradig objektorientiert und unterstützt andere Sprachparadigmen, weil von Anfang an ein Augenmerk auf die Realisierung verschiedenster Sprachanbindungen gelegt wurde. Es existiert eine Vielzahl von Bindings (siehe Tabelle oder Sprachanbindung für GTK+)
Installation¶
Aus den Paketquellen¶
Um mit GTK+ 3.x einfache Programme erstellen zu können, genügt es, folgendes Paket zu installieren:
libgtk-3-dev
Befehl zum Installieren der Pakete:
sudo apt-get install libgtk-3-dev
Oder mit apturl installieren, Link: apt://libgtk-3-dev
Benutzung¶
Editor¶
Seine Programme kann man wie gewohnt in seinem Lieblingseditor schreiben[2].
Designer¶
Wer seine Oberflächen am liebsten zusammenklickt, kann dies über Glade 🇬🇧 erledigen, der in einigen IDEs integriert ist.
Dokumentation¶
Für die Entwicklung von GTK+-Programmen ist eine gute Dokumentation unerlässlich. Es wird dringendst empfohlen, noch folgende Pakete zu installieren:
devhelp (universe)
libgtk-3-doc
Befehl zum Installieren der Pakete:
sudo apt-get install devhelp libgtk-3-doc
Oder mit apturl installieren, Link: apt://devhelp,libgtk-3-doc
bzw. wenn man noch mit GTK+ 2.x arbeitet:
devhelp (universe)
libgtk2.0-doc
Befehl zum Installieren der Pakete:
sudo apt-get install devhelp libgtk2.0-doc
Oder mit apturl installieren, Link: apt://devhelp,libgtk2.0-doc
Das erste Programm¶
Natürlich kann hier keine vollständige Einführung in GTK+ und die zahlreichen verwendeten Konzepte gegeben werden. Für das Erlernen von GTK+ sei das unten verlinkte Tutorial hervorgehoben.
helloworld.c¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | #include <gtk/gtk.h> static void on_button_clicked (GtkWidget *widget, gpointer data) { g_print ("Hello World\n"); } int main (int argc, char *argv[]) { GtkWidget *window, *button; gtk_init (&argc, &argv); window = gtk_window_new (GTK_WINDOW_TOPLEVEL); g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), NULL); gtk_container_set_border_width (GTK_CONTAINER (window), 10); button = gtk_button_new_with_label ("Hello World"); g_signal_connect (button, "clicked", G_CALLBACK (on_button_clicked), NULL); gtk_container_add (GTK_CONTAINER (window), button); gtk_widget_show_all (window); gtk_main (); return 0; } |
Übersetzen¶
Der Compiler benötigt für GTK+ eine ganze Reihe von Optionen. Glücklicherweise lassen sich diese über pkg-config automatisch hinzufügen:
gcc -Wall -g helloworld.c -o helloworld `pkg-config --cflags --libs gtk+-3.0`
bzw. für GTK+ 2.x:
gcc -Wall -g helloworld.c -o helloworld `pkg-config --cflags --libs gtk+-2.0`
Links¶
Interne Links¶
Programmierung - Übersichtsartikel rund ums Programmieren
GUI-Toolkits - Übersichtsartikel rund um die verschiedenen graphische Bibliotheken
Externe Links¶
Webseite 🇬🇧
GNOME-Tutorials zu GTK+ 3.x mit C, C++, Python, Javascript und Vala 🇬🇧
Glade 🇬🇧 - GUI zum Designen von GTK-Oberflächen