- gtkmm
-
gtkmm Entwickler Murray Cumming, Daniel Elstner Aktuelle Version 3.2.0
(27. September 2011)Betriebssystem UNIX, GNU/Linux, Microsoft Windows Programmiersprache C++ Kategorie Komponentenbibliothek Lizenz LGPL (Freie Software) Deutschsprachig ja gtkmm.org gtkmm ist eine freie C++-Programmbibliothek für die Erstellung grafischer Benutzeroberflächen (GUI). Sie ist eine Anbindung des in der Programmiersprache C geschriebenen GIMP-Toolkits an C++ und als solche die bedeutendste extern entwickelte Anbindung von Gtk+.
Die Bezeichnung gtkmm steht für gtk-- (gtk minus minus), den ursprünglichen Namen des Projektes.
Die gtkmm-Bibliothek steht unter der freien Lizenz LGPL und ist dadurch eine kostenlose Lösung auch für grafische Closed Source-Programme unter Linux und Unix.
Inhaltsverzeichnis
Änderungen gegenüber Gtk+
Die Bibliothek kapselt unter anderem das GObject-System in eine funktionsgleiche C++-Klassenhierarchie. In der C++-Variante der Glib, glibmm, werden die Funktionen und Strukturen weitgehend durch Äquivalente aus der C++-Standardbibliothek ersetzt.
Typsichere Rückruffunktionen (Signal-Slot-Konzept) realisiert gtkmm über die Bibliothek libsigc++.
Programmierbeispiel
Das folgende Beispiel erzeugt ein Fenster mit einem Beschriftungsfeld (Label) und einer Schaltfläche (Button). Letzteres wird mithilfe der libsigc++ mit der quit-Funktion verbunden, so dass das Programm bei einem Klick auf den Button beendet wird. Die beiden Widgets werden anschließend in einem Gtk+-typischen Container, einer vertikalen Box, untergebracht. Diese Box wird im Fenster schließlich angezeigt.
#include <gtkmm.h> using namespace Gtk; int main(int argc, char *argv[]) { Main kit(argc, argv); Window window; window.set_title("Beispiel"); window.set_border_width(15); Label hello("Hallo Welt!"); Button quit_button(Stock::QUIT); quit_button.signal_clicked().connect(sigc::ptr_fun(&Gtk::Main::quit)); VBox box(false, 15); box.add(hello); box.add(quit_button); window.add(box); window.show_all(); Main::run(window); return 0; }
Benutzeroberflächen können mit gtkmm entweder explizit programmiert oder, wie bereits Gtk+-Oberflächen, mit Hilfe des Programms Glade erstellt werden.
Verwendung
In gtkmm geschrieben Programme laufen auf allen Plattformen, auf denen auch Gtk+ läuft (unter anderem Mac OS X und Microsoft Windows), wobei das Toolkit nicht primär zur Cross-Platform-Entwicklung gedacht ist, sondern im Bereich der Unix-Derivate (wie Linux) beheimatet ist.
Eine populäre Anwendung, die gtkmm benutzt, ist Inkscape.
Alternativen
Der Funktionsumfang der gtkmm-Bibliothek ist in etwa vergleichbar mit dem der etwas bekannteren Bibliothek Qt. Anders als Qt enthält sie allerdings keine Funktionen, die über die GUI-Programmierung hinausgehen.
Vergleichbare in C++ geschrieben Grafikbibliotheken sind ferner, mit ähnlichem Funktionsumfang, wxWidgets. FLTK ist im Umfang erheblich geringer.
Siehe auch
Weblinks
Wikibooks: GTK – Lern- und Lehrmaterialien- gtkmm-Projekthomepage
- Offizielles Tutorial (deutsch und englisch gemischt)
- Tutorial, auch offline-Version vorhanden
- Deutsches GTKmm-Tutorial in vier Teilen
Kategorien:- GUI-Framework
- GTK+
- Linux-Software
- Windows-Software
- Unix-Software
- gtkmm-Projekthomepage
Wikimedia Foundation.