Rheinwerk Computing < openbook > Rheinwerk Computing - Professionelle Bücher. Auch für Einsteiger.
Professionelle Bücher. Auch für Einsteiger

 << zurück
Linux-UNIX-Programmierung von Jürgen Wolf
Das umfassende Handbuch – 2., aktualisierte und erweiterte Auflage 2006
Buch: Linux-UNIX-Programmierung

Linux-UNIX-Programmierung
1216 S., mit CD, 49,90 Euro
Rheinwerk Computing
ISBN 3-89842-749-8
gp Kapitel 15 GTK+
  gp 15.1 Was ist GTK+?
    gp 15.1.1 Was sind GDK und Glib?
    gp 15.1.2 Schnittstellen von GTK+ zu anderen Programmiersprachen
    gp 15.1.3 GTK+ und GNOME
    gp 15.1.4 GTK+ Version 1.2 und 2.x
    gp 15.1.5 GTK+-Aufbau des Kapitels
  gp 15.2 GTK+-Anwendungen übersetzen
  gp 15.3 Eine Einführung in die Glib-Bibliothek
    gp 15.3.1 Datentypen
    gp 15.3.2 Routinen
    gp 15.3.3 Assertions-Funktionen
    gp 15.3.4 Speicherverwaltung
    gp 15.3.5 Stringbearbeitung
    gp 15.3.6 Selbstverwaltender Stringpuffer
    gp 15.3.7 Timer
    gp 15.3.8 Dynamische Arrays
    gp 15.3.9 Listen, Hashtabellen und binäre Bäume
    gp 15.3.10 Ausblick Glib
  gp 15.4 Grundlagen der GTK+-Programmierung
    gp 15.4.1 Die Umgebung initialisieren
    gp 15.4.2 Widgets erzeugen und ggf. die Attribute setzen
    gp 15.4.3 Eine Callback-Funktion einrichten, um Events abzufangen
    gp 15.4.4 Eine GTK+-Anwendung beenden
    gp 15.4.5 Die hierarchische Anordnung der Widgets definieren
    gp 15.4.6 Widgets anzeigen
    gp 15.4.7 Signale und Events abfangen und bearbeiten – (Events-)Verarbeitungsschleife
    gp 15.4.8 GTK+ und Umlaute (Zeichenkodierung)
  gp 15.5 Fenster – GtkWindow
    gp 15.5.1 Dialogfenster (Dialogboxen)
    gp 15.5.2 GtkMessageDialog
  gp 15.6 Anzeige-Elemente
    gp 15.6.1 Text – GtkLabel
    gp 15.6.2 Trennlinie – GtkSeparator
    gp 15.6.3 Grafiken – GtkImage
    gp 15.6.4 Statusleiste – GtkStatusbar
    gp 15.6.5 Fortschrittsbalken – GtkProgressBar
  gp 15.7 Behälter
    gp 15.7.1 Boxen – GtkBox
    gp 15.7.2 Aufteilungen, Register und Button-Box
    gp 15.7.3 Tabellen – GtkTable
    gp 15.7.4 Ausrichtung – GtkAlignment
  gp 15.8 Buttons und Toogled-Buttons
    gp 15.8.1 Buttons allgemein
    gp 15.8.2 Radio-Buttons (GtkRadioButton)
    gp 15.8.3 GtkRadioButton, GtkCheckButton und GtkToggleButton
    gp 15.8.4 Signale für Buttons (GtkButton)
  gp 15.9 Dateneingabe
    gp 15.9.1 Textfelder – GtkEntry
    gp 15.9.2 Schieberegler – GtkScale
    gp 15.9.3 Zahlenfelder – GtkSpinButton
    gp 15.9.4 Einstellungen – GtkAdjustment
    gp 15.9.5 GtkEditable
  gp 15.10 Menü und Toolbar
    gp 15.10.1 Menü – GtkItemFactory
    gp 15.10.2 Toolbar – GtkToolbar
    gp 15.10.3 Options-Menü – GtkOptionsMenu
    gp 15.10.4 Combo-Boxen – GtkCombo
  gp 15.11 Mehrzeiliger Text
    gp 15.11.1 Text(editor) – GtkTextView, GtkTextBuffer
    gp 15.11.2 Scrollendes Fenster – GtkScrolledWindow
  gp 15.12 Auswählen (Selection)
    gp 15.12.1 Dateiauswahl – GtkFileSelection
  gp 15.13 Events
  gp 15.14 Weitere Widget- und GTK+-Elemente im Überblick


Rheinwerk Computing

15.14 Weitere Widget- und GTK+-Elemente im Überblick  toptop

GTK+ hat natürlich noch weitaus mehr zu bieten als die im Buch vorgestellten Widgets. Wie schon erwähnt, im Buch haben Sie nur den Rand des Wahnsinns kennen gelernt. Hier folgt noch ein weiterer kurzer Überblick zu einigen Widgets, die hier kaum oder gar nicht zur Sprache gekommen sind, wobei es aber lohnenswert ist, sich näher damit zu befassen.


Hinweis   Wer sich nach dieser Einführung jetzt noch intensiver mit GTK+ befassen will, dem habe ich auf der Buch-CD Weiterführendes zu dieser Bibliothek zusammengestellt.


Bäume und Listen

Mit den Bäumen und Listen steht Ihnen in GTK+ ein gewaltiges Widget-System zur Verfügung. Um Bäume und Listen in GTK+ zu erzeugen und zu verwenden, wird das Model/View/Controller-Konzept (kurz MVC) verwendet. Mit diesem Konzept wird die interne Darstellung der Daten (Model), die Anzeige (View) und die Manipulation der Daten (Controller) unterschieden. Dieses Konzept wird grob in folgende Hauptteile zerlegt:

gp  GtkTreeModel – Mit diesem Widget erzeugen Sie die interne Modell-Schnittstelle. Hier könnten Sie entweder selbst aktiv werden und sich Ihre eigene Implementation erstellen, oder Sie verwenden das bereits mitgelieferte Modell GtkListStore für einfache Listen (flache Bäume) oder GtkTreeStore für Bäume mit eventuell mehreren Ebenen.
gp  GtkTreeView – Dieses Widget dient zur Darstellung der Baumansicht. Dabei wird für jede Spalte ein Objekt der Klasse GtkTreeViewColumn benötigt.
gp  GtkCellRenderer – Der Renderer ist das eigentliche Bindeglied zwischen der Baumansicht (GtkTreeView) und dem Baummodell (GtkTreeModel). Damit werden die Daten in einer Zelle formatiert, eingefügt und auch wieder dargestellt. Auch hier bringt GTK+ schon wieder vorgefertigte Klassen zur Verwendung von Text (GtkCellRendererText), Pixbufs (GtkCellRendererPixbuf) und Ankreuzbuttons (GtkCellRendererToggle) mit.

Lineale

Einfache Lineale zur exakten Positionierung, wie Sie dies z. B. bei Textverarbeitungsprogrammen von den Seitenrändern her kennen (GtkRuler, GtkHRuler, GtkVRuler).

Zwischenablage (Clipboard)

Die Klasse GtkClipboard ist eine Zwischenablage, womit Daten zwischen verschiedenen Prozessen, sogar zwischen den verschiedenen Widgets im selben Prozess, geteilt werden können. Meistens wird diese Zwischenablage für einfache Copy & Paste-Aktionen verwendet.

Drag and Drop

GTK+ bietet eine Reihe von Funktionen, womit Sie das Drag –and Drop kontrollieren können. Mittlerweile bietet GTK+ auch schon eine Menge anderer unterstützender Protokolle für das Drag and Drop zwischen nicht GTK+-Anwendungen an. Wichtige Protokolle in der Struktur GdkDragProtocol wären hierfür Xdnd und das Motif-Protokoll.

Stock Items – Repertoire-Einträge

Die Stock Items wurden zwar kurz erwähnt. Stock Items stellen Ihnen gewöhnliche Menü- und Toolbar-Elemente zur Verfügung. Jedes dieser Elemente wird anhand einer Stock-ID identifiziert. Diese ID kann entweder in Form eines Strings oder aber eines Makros verwendet werden. Des Weiteren ist es natürlich auch möglich, eigene Einträge hinzuzufügen.

Signale

Das Thema »Signale« wurde in diesem Kapitel nur oberflächlich behandelt. Bei vielen Widgets wurden die Signale zum Teil unvollständig bis gar nicht erwähnt. Aber um für den Hausgebrauch eigene Anwendungen in GTK+ zu erstellen, reichen Ihre Kenntnisse diesbezüglich aus. Dennoch ist es sehr zu empfehlen, sich noch etwas intensiver mit den Signalen von GTK+ zu befassen, da diese doch die Eckpfeiler einer GTK+-Anwendung darstellen. Unbedingt müssen Sie sich mit Signalen befassen, wenn Sie sich für die Erstellung eigener Widgets interessieren.

Ressource-Files

GTK+ unterstützt auch Ressource-Files (gtkrc-Files), womit Sie Einstellungen wie z. B. das Look & Feel zur Laufzeit der Anwendung verändern können.

Widget-Entwicklung

Logischerweise ist es auch möglich, eigene Widgets zu erstellen. Hierbei können Sie entweder aus einer vorhandenen Klasse ein Widget ableiten oder aber auch mithilfe (der niedrigeren Ebene) von GDK-Funktionen Ihr Widget selbst zeichnen (!) und die Ereignisse abarbeiten.

GDK

Voraussetzung für das Entwickeln eigener Widgets ist GDK. GDK fungiert, wie Sie bereits wissen, als Schnittstelle zwischen GTK+ und dem Backend (unter Linux meistens X11 und unter Windows die Win32-API). Alle GTK+-Widgets bauen auf den Strukturen und Funktionen der GDK-Bibliothek auf.

 << zurück
  
  Zum Rheinwerk-Shop
Neuauflage: Linux-UNIX-Programmierung
Neuauflage:
Linux-UNIX-
Programmierung

bestellen
 Ihre Meinung?
Wie hat Ihnen das Openbook gefallen?
Ihre Meinung

 Buchtipps
Zum Rheinwerk-Shop: Linux-Server






 Linux-Server


Zum Rheinwerk-Shop: Das Komplettpaket LPIC-1 & LPIC-2






 Das Komplettpaket
 LPIC-1 & LPIC-2


Zum Rheinwerk-Shop: Linux-Hochverfügbarkeit






 Linux-
 Hochverfügbarkeit


Zum Rheinwerk-Shop: Shell-Programmierung






 Shell-
 Programmierung


Zum Rheinwerk-Shop: Linux Handbuch






 Linux Handbuch


 Lieferung
Versandkostenfrei bestellen in Deutschland, Österreich und der Schweiz
Info





Copyright © Rheinwerk Verlag GmbH 2006
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das Openbook denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt.
Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


Nutzungsbestimmungen | Datenschutz | Impressum

Rheinwerk Verlag GmbH, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, service@rheinwerk-verlag.de

Cookie-Einstellungen ändern