gtkmm

gtkmm

GTK-Logo
(c) Andreas Nilsson, CC BY-SA 3.0
Basisdaten

EntwicklerMurray Cumming, Daniel Elstner
Aktuelle Version3.22.1 (23. Juni 2017[1])

2.24.5 (4. September 2016[2])

BetriebssystemUnix, Linux, Windows
ProgrammierspracheC++
KategorieGUI-Toolkit
LizenzLGPL (Freie Software)
deutschsprachigja
gtkmm.org

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.

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.

Ä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 Ergebnis des Beispielprogrammes, kompiliert mitg++ beispiel.cc `pkg-config --cflags --libs gtkmm-2.4`

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 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.

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++ geschriebene Grafikbibliotheken sind ferner, mit ähnlichem Funktionsumfang, wxWidgets. FLTK ist im Umfang erheblich geringer.

Siehe auch

Weblinks

Einzelnachweise

  1. mail.gnome.org
  2. mail.gnome.org
  3. mail.gnome.org

Auf dieser Seite verwendete Medien

GTK logo.svg
(c) Andreas Nilsson, CC BY-SA 3.0
The GTK logo.
Gtkmm example.png
Autor/Urheber:
This file was made by User:Sven
Translation

If this image contains text, it can be translated easily into your language. If you need help, contact me

Flexible licenses

If you want to use this picture with another license than stated below, contact me

Contact the author

If you need a really fast answer, mail me. If you need only a fast answer, write me here.

, Lizenz: GPL
This is a screenshot from a short gtkmm example program written for the german wikipedia article de:Gtkmm.