Loading AI tools
Offizielles C++ Interface für die GTK+ GUI-Bibliothek Aus Wikipedia, der freien Enzyklopädie
gtkmm ist die C++-Schnittstelle für das freie GUI-Toolkit GTK. Die Bezeichnung gtkmm steht für gtk-- (gtk minus minus), den ursprünglichen Namen des Projektes.
gtkmm | |
---|---|
Basisdaten | |
Entwickler | Murray Cumming, Daniel Elstner |
Aktuelle Version | 3.22.1 (23. Juni 2017[1]) 2.24.5 (4. September 2016[2]) |
Betriebssystem | Unix, Linux, Windows |
Programmiersprache | C++ |
Kategorie | GUI-Toolkit |
Lizenz | LGPL (Freie Software) |
deutschsprachig | ja |
gtkmm.org |
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.
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++.
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.
In gtkmm geschriebene Programme laufen auf allen Plattformen, auf denen auch Gtk läuft (unter anderem macOS und Windows), wobei das Toolkit nicht primär zur Cross-Platform-Entwicklung gedacht ist, sondern im Bereich der Unix-Derivate (wie Linux) beheimatet ist.
Aktuell wird gtkmm 4 entwickelt basierend auf GTK 4.[3]
Eine populäre Anwendung, die gtkmm benutzt, ist Inkscape.
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++ geschriebene Grafikbibliotheken sind ferner, mit ähnlichem Funktionsumfang, wxWidgets. FLTK ist im Umfang erheblich geringer.
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.