<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Gtkmm</id>
	<title>Gtkmm - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Gtkmm"/>
	<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Gtkmm&amp;action=history"/>
	<updated>2026-05-30T00:32:22Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Wikipedia (Deutsch) – Lokale Kopie</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki-de.moshellshocker.dns64.de/index.php?title=Gtkmm&amp;diff=907840&amp;oldid=prev</id>
		<title>imported&gt;Trustable: wikilinks</title>
		<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Gtkmm&amp;diff=907840&amp;oldid=prev"/>
		<updated>2023-04-26T23:36:56Z</updated>

		<summary type="html">&lt;p&gt;wikilinks&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{SEITENTITEL:gtkmm}}&lt;br /&gt;
{{Infobox Software&lt;br /&gt;
|Name= gtkmm&lt;br /&gt;
|Logo= [[Datei:GTK logo.svg|150px|GTK-Logo]]&lt;br /&gt;
|Beschreibung= &lt;br /&gt;
|Hersteller= Murray Cumming, Daniel Elstner&lt;br /&gt;
|AktuelleVersion= &lt;br /&gt;
3.22.1 (23. Juni 2017&amp;lt;ref&amp;gt;[https://mail.gnome.org/archives/commits-list/2017-June/msg06359.html mail.gnome.org]&amp;lt;/ref&amp;gt;)&amp;lt;br /&amp;gt;&lt;br /&gt;
2.24.5 (4. September 2016&amp;lt;ref&amp;gt;[https://mail.gnome.org/archives/gnome-announce-list/2016-September/msg00003.html mail.gnome.org]&amp;lt;/ref&amp;gt;)&lt;br /&gt;
|AktuelleVersionFreigabeDatum= &lt;br /&gt;
|Betriebssystem= [[Unix]], [[Linux]], [[Microsoft Windows|Windows]]&lt;br /&gt;
|Programmiersprache= [[C++]]&lt;br /&gt;
|Kategorie= [[GUI-Toolkit]]&lt;br /&gt;
|Lizenz= [[GNU Lesser General Public License|LGPL]] ([[Freie Software]])&lt;br /&gt;
|Deutsch= ja&lt;br /&gt;
|Website= [http://gtkmm.org/ gtkmm.org]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;gtkmm&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039; ist die [[C++]]-Schnittstelle für das [[Freie Software|freie]] [[GUI-Toolkit]] [[GTK (Programmbibliothek)|GTK]]. Die Bezeichnung &amp;#039;&amp;#039;gtkmm&amp;#039;&amp;#039; steht für &amp;#039;&amp;#039;gtk-- (gtk minus minus),&amp;#039;&amp;#039; den ursprünglichen Namen des Projektes.&lt;br /&gt;
&lt;br /&gt;
Die &amp;#039;&amp;#039;gtkmm&amp;#039;&amp;#039;-Bibliothek steht unter der [[Freie Software|freien]] Lizenz [[GNU Lesser General Public License|LGPL]] und ist dadurch eine kostenlose Lösung auch für grafische [[Closed Source|Closed-Source]]-Programme unter Linux und Unix.&lt;br /&gt;
&lt;br /&gt;
== Änderungen gegenüber Gtk ==&lt;br /&gt;
Die Bibliothek [[Datenkapselung (Programmierung)|kapselt]] unter anderem das [[GObject]]-System in eine funktionsgleiche C++-[[Vererbung (Programmierung)|Klassenhierarchie]]. In der C++-Variante der [[GLib]], &amp;#039;&amp;#039;glibmm,&amp;#039;&amp;#039; werden die Funktionen und Strukturen weitgehend durch Äquivalente aus der [[C++-Standardbibliothek]] ersetzt.&lt;br /&gt;
&lt;br /&gt;
[[Typsicher]]e [[Rückruffunktion]]en ([[Signal-Slot-Konzept]]) realisiert &amp;#039;&amp;#039;gtkmm&amp;#039;&amp;#039; über die Bibliothek &amp;#039;&amp;#039;[[libsigc++]].&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
== Programmierbeispiel ==&lt;br /&gt;
[[Datei:Gtkmm example.png|mini|Das Ergebnis des Beispielprogrammes, kompiliert mit&amp;lt;code&amp;gt;[[GNU Compiler Collection|g++]] beispiel.cc `[[pkg-config]] --cflags --libs gtkmm-2.4`&amp;lt;/code&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
Das folgende Beispiel erzeugt ein Fenster mit einem [[Label (Steuerelement)|Beschriftungsfeld]] (&amp;#039;&amp;#039;Label&amp;#039;&amp;#039;) und einer [[Schaltfläche]] (&amp;#039;&amp;#039;Button&amp;#039;&amp;#039;). Letzteres wird mithilfe der [[libsigc++]] mit der &amp;#039;&amp;#039;quit&amp;#039;&amp;#039;-[[Rückruffunktion|Funktion]] verbunden, so dass das Programm bei einem Klick auf den Button beendet wird. Die beiden [[Widget]]s werden anschließend in einem Gtk-typischen Container –&amp;amp;nbsp;einer vertikalen Box&amp;amp;nbsp;– untergebracht. Diese Box wird im Fenster schließlich angezeigt.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;gtkmm.h&amp;gt;&lt;br /&gt;
using namespace Gtk;&lt;br /&gt;
&lt;br /&gt;
int main(int argc, char *argv[]) {&lt;br /&gt;
    Main kit(argc, argv);&lt;br /&gt;
&lt;br /&gt;
    Window window;&lt;br /&gt;
    window.set_title(&amp;quot;Beispiel&amp;quot;);&lt;br /&gt;
    window.set_border_width(15);&lt;br /&gt;
&lt;br /&gt;
    Label hello(&amp;quot;Hallo Welt!&amp;quot;);&lt;br /&gt;
    Button quit_button(Stock::QUIT);&lt;br /&gt;
    quit_button.signal_clicked().connect(sigc::ptr_fun(&amp;amp;Gtk::Main::quit));&lt;br /&gt;
&lt;br /&gt;
    VBox box(false, 15);&lt;br /&gt;
    box.add(hello);&lt;br /&gt;
    box.add(quit_button);&lt;br /&gt;
&lt;br /&gt;
    window.add(box);&lt;br /&gt;
    window.show_all();&lt;br /&gt;
    Main::run(window);&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Benutzeroberflächen können mit &amp;#039;&amp;#039;gtkmm&amp;#039;&amp;#039; entweder explizit programmiert oder, wie bereits Gtk-Oberflächen, mit Hilfe des Programms [[Glade (Programmierwerkzeug)|Glade]] erstellt werden.&lt;br /&gt;
&lt;br /&gt;
== Verwendung ==&lt;br /&gt;
In &amp;#039;&amp;#039;gtkmm&amp;#039;&amp;#039; geschriebene Programme laufen auf allen [[Plattform (Computer)|Plattformen]], auf denen auch Gtk läuft (unter anderem [[macOS]] und [[Windows]]), wobei das Toolkit nicht primär zur [[Plattformübergreifend|Cross-Platform]]-Entwicklung gedacht ist, sondern im Bereich der [[Unix]]-Derivate (wie [[Linux]]) beheimatet ist.&lt;br /&gt;
&lt;br /&gt;
Aktuell wird gtkmm 4 entwickelt basierend auf GTK 4.&amp;lt;ref&amp;gt;[https://mail.gnome.org/archives/gnome-announce-list/2017-May/msg00023.html mail.gnome.org]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Eine populäre Anwendung, die gtkmm benutzt, ist [[Inkscape]].&lt;br /&gt;
&lt;br /&gt;
== Alternativen ==&lt;br /&gt;
Der Funktionsumfang der &amp;#039;&amp;#039;gtkmm&amp;#039;&amp;#039;-Bibliothek ist in etwa vergleichbar mit dem der etwas bekannteren Bibliothek [[Qt (Bibliothek)|Qt]]. Anders als Qt enthält sie allerdings keine Funktionen, die über die GUI-Programmierung hinausgehen.&lt;br /&gt;
&lt;br /&gt;
Vergleichbare in C++ geschriebene Grafikbibliotheken sind ferner, mit ähnlichem Funktionsumfang, [[wxWidgets]]. [[Fast Light Toolkit|FLTK]] ist im Umfang erheblich geringer.&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
* [[Liste von GUI-Bibliotheken]]&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* [http://www.gtkmm.org/de/index.html gtkmm-Projekthomepage]&lt;br /&gt;
** [http://gtkmm.org/docs/gtkmm-2.4/docs/tutorial/html/ Offizielles Tutorial] (deutsch und englisch gemischt)&lt;br /&gt;
* [http://www.tu-chemnitz.de/informatik/friz/Grundl-Inf/GTKmm_Tutorial/ Tutorial] (auch offline-Version vorhanden)&lt;br /&gt;
* [http://magazin.c-plusplus.de/artikel/GTKmm%20Tutorial%20Teil%201 Deutsches GTKmm-Tutorial in vier Teilen]&lt;br /&gt;
&lt;br /&gt;
== Einzelnachweise ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:GUI-Toolkit]]&lt;br /&gt;
[[Kategorie:GTK (Programmbibliothek)]]&lt;br /&gt;
[[Kategorie:Linux-Software]]&lt;br /&gt;
[[Kategorie:Windows-Software]]&lt;br /&gt;
[[Kategorie:Unix-Software]]&lt;/div&gt;</summary>
		<author><name>imported&gt;Trustable</name></author>
	</entry>
</feed>