Einführung
Wenn auch Ruby ein
ausgezeichneter Tool für die Programmierung
von "low-level" Skripts für die
Systemadministration ist, ist die Sprache
genauso für die Programmierung von
Anwendungsprogramme anzuwenden. Und weil
fenstergesteurte Programme (graphical user
interfaces) ein "Muss" für moderne
Anwendungsprogramme sind, sollten Sie sich
beibringen, wie man GUI's mit Ruby
entwickelt. Ein von mehreren Vorteilen der
Rubyprogrammierung ist es, Sie kriegen es
zu spüren, dass es möglich ist, die
Entwicklungszeit eines gewnschten
Programmes zu reduzieren(rapid application
development, RAD). Im Gegensatz zum
zeitaufwendigen Verfahren wie "code compile
test"("Codieren Compilieren Testen") Zyklus
einer traditionellen Programmiersprache,
können Sie schnell Änderungen vornehmen in
Ihrem Rubyskript,um neue Ideen
auszuprobieren. Dieser Vorteil wird ganz
mehr offensichtlicher, wenn Sie anfangen,
GUI- Applicationen mit Ruby zu entwicklen.
Schrittweise grafische Öberfläche zu
entwicklen, Hinzufügen eines neuen Elements
und Restarting des Programmes um ein
sofortiges Resultat zu sehen, wie GUI sich
verändert, kann man das alles schnell
lernen.
Sie dürfen bereits wissen, dass
Standard Ruby Distribution eine
Schnittstelle zu TK beinhaltet, einer
Schnittstelle, die schon längst al ein
"cross-platform" GUI Toolkit gilt. When Sie
sich jedoch in Ruby Application
Archive(RAA) nachsehen, würden Sie sich
schnell entdecken, dass es mehrere GUI
Toolkits für Ruby gibt.RAA Warum sollte man
sich nicht nur mit TK beschätigen obwohl
der ein Standard ist? Ja nun, während Sie
dieses Kapitel durcharbeiten, würden Sie
sich es überlegen, dass man auch weitere
Alternativen anwenden kann.Diese GUI
Toolkits befinden sich in mehreren Stadien
der Entwicklung. Einige sind neue und
unstabil, während andere sind alt und ganz
robust, jedoch in meisten Fällen irgendwo
dazwischen. Meistens sind GUI Toolkits für
Ruby cross-plattformig, gemeint wird es
damit, dass die Programme so aufgebaut
sind, dass sie auf Multi-User-Plattform
laufen, während andere auf
Singl-User-Plattform laufen.
Jeder GUI Toolkit bringt mit
sich eigene einzigartige Eingenschaften und
Besonderheiten, jedoch es gibt einige
Merkmale, die in fast allen GUI Toolkits
vorhanden sind, mit denen Sie arbeiten
würden. GUI- Applicationen sind
"Ereignisgesteuert". Viele Programme werden
Sie fortfahrend von Start bis Ende
schreiben, dabei wissen Sie, was Sie vom
Programm wollen , das eine festgesetzte
Menge der Information einnimmt(Input)und
gleiche Menge von Output erzeugt mit
wenigem oder gar keinem Eingreifen von
Anwender(User). Zum Beispiel, betrachtet
man ein Rubyskript das zum Verarbeiten
grossen Anzahl von Textdateien in der
Stapelverarbeitung geschrieben wurde,
eventuell auch "updating" eines
ausgewählten Abschnittes in diesen Dateien
und das auch ohne Eingreifen vom User. Im
Gegensatz zu solchen Programmen verbringen
"event-driven" Applicationen ihre meiste
Zeit im "Nichtstun", bis der Anwender was
unternimmt bzw. ein Input erzeugt, was das
Fortfahren des Programms veranlässt. Jeder
Toolkit realisiert auf seine eigene Art die
Kommunikation zwischen einem Ereignis,
welches ein Anwender auslöst, und einem
Programmecode, welcher mit einer bestimmter
Funktion festgeknüpft ist. Somit ist eine
gewisse Kommunikation miteinanderer
gewährleistet. GUI Toolkits bestehen aus
grosser Anzahl von elementaren Objekten,
sogenannten "Widgets" wie "Schaltflächen",
"Beschriftungen", und "Textfelden", als
auch aus noch mehr vielseitigen Widgets,
wie "Tabellen", "Kalender" oder
"Texteditoren". Der Aufbau von grafischen
Öberflächen erfolgt auf dem Basis
"Vater-Kind"-Beziehung. Es gibt einen
Toplevel-Widget, der als "Main-Window"
bezeichnet wird, und der beheimatet ein
odere mehrere "Kind" Fenster . Jedes "Kind"
Fenster kann auch weitere "Kind" Fenster
enthalten und so geht's weiter. Das Prinzip
somit ist eine Verwendung solchen
"Zusammengesetzen Muster" und die
Handhabung ist zu den "Vater-Fenster"
andwendbar, welches gewöhnlich
"Kind-Fenster" beinflüssen wird. GUI
Toolkits bieten mehrere Optionen für die
Gestaltung "Kind-Fenster" innerhalb des
"Behälterfensters" an.
Das Ziel dieses Kapitels ist
es, einige von meist populären GUI Toolkits
für Ruby vorzustellen, wie man häufige
Sprachelemente anwenden kann, eine
Erklärung daüber wie man es benutzt und bei
der Entscheidung zu helfen, welcher von GUI
Toolkits am besten Ihren Vorstellungen
entspricht. Um das zu machen, werden wir
zuerst ein einfaches Programm beschreiben
das eine Menge von Merkmalen und Funktionen
hat, was Sie in anderen GUI Programmen
anwenden würden. Danach werden wir einen
Blick darauf werfen, wie Sie dieses
Programm mit jeder von diesen Toolkits
entwickeln könnten. Weiter werden wir
einige andere Themen besprechen, wie man
diese GUI Toolkits an Ihrem System
herunterladen,installieren und kompilieren
kann und auch zusätzliche Tools(solche wie
GUI Builder), mit denen man die Entwicklung
bequemer und schneller machen kann. Eine
Quelle für weitere zusätzliche
Informationen und Ressoursen kann in einem
Forum des jeweiligen GUI Toolkits gefunden
werden.
Verwendung unseres
Beispielprogrammes
Für jeden von diesen vier
größten Tools(Tk, GTK+, FOX und SWin/VRuby)
werden wir ein kleines gleiches Programm
entwickeln, so dass Sie schnell
Ähnlichkeiten und Unterschiede zwischen
Toolkits erkennen können, dadurch werden
Sie lernen, wie man sie benutzen kann. Das
Programm ist ein einfacher XML Betrachter,
das NQXML Modules von Jim Menard verwendet
als seine Dokumentvorlage, also Sie müssen
sich Erweiterungen verschaffen und sie
installieren, bevor Sie eingentlich das
Beispielprogramm auf Ihrem System laufen
lassen können. Um Ihnen das benötigte
Wissen zu übermitteln, damit Sie Ihre
eigene Programme entwickeln können, werden
am Beispiel dieses XML-Betrachters folgende
allgemeine Merkmale gezeigt: