====== GTK+ ===== GTK+ ist eine Komponentenbibliothek zum Erstellen von grafischen Benutzeroberflächen. Viele Desktop-Umgebungen benutzen GTK+ als Grundlage, wie GNOME oder Xfce. GTK+ zählt zu den beliebtesten Toolkits für das X-Window System. **Hinweis: **Mit [[http://www.gnome.org/|GNOME 3]] wurde auch GTK in der Version 3 veröffentlicht. Dieses Tutorial basiert auf __GTK2__. Der größte Teil mag auch für GTK3 gelten, doch sind beide Versionen __nicht kompatibel!__ ===== Über GTK+ ===== * **Lizenz:** LGPL * **Programmiersprachen:** C, Bindings für C++, Python, Ruby, C# u.a. * **Plattformen:** Linux/Unix, Windows und Mac OS X * **Aktuelle Version (stable):** 3.12.2 (12. Mai 2014) ===== Eine Einführung in GTK+ ===== Dieses Tutorial behandelt die Grundlagen für die Oberflächenerstellung mit GTK+. Die Artikel bauen aufeinander auf, weshalb eine Schritt-für-Schritt Abarbeitung empfohlen wird. -[[gui:gtk:priorknowledge|Vorkenntnisse und Voraussetzungen]] -[[gui:gtk:firststeps|Erste Schritte mit GTK+]] -[[gui:gtk:boxes|Anordnung von GUI-Elementen]] -[[gui:gtk:firstwidgets|Einfache GTK-Widgets]] -[[gui:gtk:signals|Signale]] -[[gui:gtk:entry|Einfache Texteingabe]] -[[gui:gtk:dialogs|Dialoge]] -[[gui:gtk:menus|Menüleisten]] -[[gui:gtk:toolbars|Werkzeugleisten]] ===== GTK+ Widgets ===== Um nützliche Benutzeroberflächen erstellen zu können, ist eine genaue Kenntnis von Widgets und den Funktionen, die sie bieten, sehr nützlich. Allerdings soll dieser Teil nicht als Referenz verstanden werden, eher als eine Art //Übersicht//. *[[gui:gtk:widgets:start|Zur Übersicht]] ===== Beispiele ===== In diesem Bereich findet ihr kleine Beispielprogramme zu GTK+ und verwandten Bibliotheken. *[[gui:gtk:examples:start|Zur Übersicht]] ===== Weiterführende Themen ===== Oft genügen die Widgets, die GTK+ bereitstellt, nicht um den Anforderungen für ein Programm gerecht zu werden. Sei es die Integration von 3D-Effekten über OpenGL oder die Möglichkeit, eigene Widgets zu schreiben: Es gibt immer einen Weg. * [[gui:gtk:advanced:glade|Der Oberflächendesigner Glade]] * [[gui:gtk:advanced:cairo|Vektorgrafiken mit GTK und Cairo]] * [[gui:gtk:advanced:custom_widget|Benutzerdefinierte Widgets erstellen]] * [[gui:gtk:advanced:glext|Einen OpenGL-Kontext mit GTK erzeugen]] ===== GObject - Objektorientierte Programmierung mit C ===== Objektorientierung ist für die Erstellung von Benutzeroberflächen sehr nützlich. Toolkits wie Qt oder wxWidgets verwenden daher eine Sprache, die von Haus aus OOP unterstützt: C++. GTK+ dagegen ist eine C-Bibliothek, und doch ist es möglich, objektorientiert zu programmieren. Dahinter steckt GObject, eine (C-)Bibliothek, die es ermöglicht, objektorientierte Techniken wie Vererbung, virtuelle Methoden und Interfaces zu benutzen. * [[gui:gtk:gobject:header|Grundlegende Deklarationen im Header]] * [[gui:gtk:gobject:implementation|Grundlegende Implementierungen]] * [[gui:gtk:gobject:construction|Objektinitialisierung]] * [[gui:gtk:gobject:destruction|Resourcenfreigabe im Destruktor]] * [[gui:gtk:gobject:properties|Die Nutzung von Properties]] * [[gui:gtk:gobject:member_func|Memberfunktionen]] ===== Links ===== * [[http://www.gtk.org/|Offizielle Seite des GTK+ Projekts]] * [[http://library.gnome.org/devel/gtk/stable/|Offizielle GTK+ Referenz]] * [[http://www.gtk-osx.sourceforge.net/|GTK+ OSX Framework Projektseite]] * [[c:start|C-Tutorial auf Proggen.org]] * [[http://forum.proggen.org/viewforum.php?f=33|Framework-Board im Proggen.org Forum]] ====== ====== ---- ↑ Hoch zur [[gui:start|GUI-Startseite]] ↑ | [[http://forum.proggen.org/viewtopic.php?f=39&t=847|Diskussion]]