Federico Mena Quintero
federico@gnome.org 2013

This work is licensed under a Creative Commons Attribution-Share Alike 3.0 United States License.

Als besondere Ausnahme gewähren die Besitzer des Urheberrechts Erlaubnis, den Beispiel-Code in diesem Dokument zu kopieren, verändern und weiterzugeben, unter den Bedingungen Ihrer Wahl, ohne Einschränkungen.

C-basiertes Objekt- und Typ-System mit Signalen und Slots
Mario Blättermann
mario.blaettermann@gmail.com 2009-2012, 2016
Christian Kirbach
christian.kirbach@gmail.com 2011, 2012, 2015, 2017, 2018
Aljosha Papsch
al@rpapsch.de 2012
Tim Sabsch
tim@sabsch.com 2019

# GObject

GObject ist der Teil der GLib-Bibliothek, der ein Objekt- und Typensystem für C-Programme bereitstellt. Obwohl C als Sprache weder Objekte noch Klassen bereitstellt, erlaubt es GObject, objektorientierte C-Programme zu schreiben.

GObject stellt einen fundamentalen GType bereit, die Basis für das gesamte Typensystem, aus denen Typen wie »ints« und »strings« abgeleitet werden. Dann ist GObject selbst die Basisklasse für alle anderen Klassen. Objekte können Signale ausgeben, die das aufrufende Programm benachrichtigen, wenn etwas Interessantes passiert. Zum Beispiel kann ein `Button`-Objekt ein `clicked`-Signal ausgeben, um anzuzeigen, dass ein Knopf gedrückt und losgelassen wurde.

GObject ist inspizierbar, was bedeutet, dass Sie das GObject-System nach den definierten Klassentypen, den unterstützten Methoden, den Signalen usw. fragen können. GNOMEs Sprachbindungen setzen auf diesen Inspektions-Informationen auf. Anstatt von Hand Wrapper zu schreiben, um die GNOME-APIs aus anderen Programmiersprachen aufrufen zu können, verwenden Sprachbindungen diese Informationen von GObject, um diese Wrapper automatisch selbst zu erzeugen.

Sie müssen sich nicht mit GObject selbst befassen, wenn Sie für GNOME in einer objektorientierten Sprache programmieren. Dennoch kann es Ihr Leben als GNOME-Programmierer erleichtern, wenn Sie sich mit den Konzepten von GObject vertraut machen, wie Signalen und Slots.

Das Referenzhandbuch von GObject