../ ../bastel
Vielleicht hattest du schon mal den Wunsch, ein einfach zu bedienendes
Programm für eine bestimmte Aufgabe zu haben. Da du nicht
programmieren kannst blieb es bisher bei diesem Wunsch, dabei ist ein
Computer dafür geschaffen worden, Routinearbeiten zu lösen
anstatt dich mit mühseliger Kleinarbeit zu lähmen. Mittlerweile
gibt es dazu auch für Nichtprogrammierer eine einfache Lösung. -weitere einleitende Worte- |
Unser Baukasten nennt sich Glade.
In der GUI (graphical user interface) Entwicklung gibt es
sogenannte "container" und "widgets". Ein Widget ist ein exaktes Element,
also z.B. ein Button, Icon oder ein Textfeld. Um diese Elemente
zu verwenden werden sie in Containern untergebracht. Container sind
also die Behälter für unsere Widgets. Das schöne an Containern ist,
dass wir sie beliebig verschachteln können. |
Palette
Container Elemente |
Der Rohbau ist noch nicht gerade schick aber mit ein wenig Tuning
lässt sich das schnell hinbiegen. Dazu schaltest du in dem
Glade Hauptfenster unter "View" die "Widget Tree" Ansicht ein und
den "Property Editor". Ich habe jetzt erstmal in der "hbox1" die
Optionen "expand" und "fill" auf "no" gesetzt und "homogeneous" auf
"yes". Das funktioniert stets nach dem gleichen Prinzip. Du klickst
im Widget Tree auf das Element, dessen Eigenschaften du verändern
willst und im Property Editor erscheinen die aktuellen Einstellungen.
|
Wenn du dein Projekt zum ersten Mal speicherst erscheint ein
Dialogfenster in das du den Dateinamen eintragen kannst. Ich habe meins "Schreibbrett" genannt und in der Datei "bsp.glade" gespeichert. Die anderen Einstellungen kannst du getrost ignorieren. Auf "OK" klicken und Glade erzeugt eine XML Datei mit deinen Einstellungen. XML ist ein universelles Format, um Strukturen zu speichern, damit hast du aber nichts weiter zu tun. (Du kannst die XML Datei natürlich mit jedem Texteditor ansehen, wenn du willst.) |
Du kannst dir folgenden Pythoncode
runterladen: -Testprogramm- um die GUI deines
Programms in "Reallife" zu testen. Natürlich gibt es auch hier
noch kein Backend (also keine Funktionalität). Weiterhin
brauchst du Glade Unterstützung für Python und GTKv2.
Glückwunsch! Das war doch nicht schwieriger als ein Bild mit Paintbrush zu zeichnen. Andernfalls lies dir die Fehlermeldung genau durch, wahrscheinlich fehlt nur ein Paket für Python, das sich schnell installieren lässt. |
Jetzt wird es aus Programmiersicht interessant. Die XML Datei
(bsp.glade) kann naemlich recht bequem ausgelesen werden, unabhaengig von der verwendeten Technik (Handy, PC, Mac, ...), Programmiersprache oder Betriebssystem.
Du schickst also diese .glade Datei an den Menschen, mit dem du vorher
schon Kontakt aufgenommen hast und versuchst durch geeignete Methoden
nochmals seine Motivation zu steigern. (ProgrammiererInnen sind
prinzipiell faule Menschen, die sich das Leben so bequem wie moeglich
einrichten und sich nicht einmal die Haare schneiden. Es gibt
allerdings Aussnahmen - die meist mit Visual Basic zu tun haben, darum
geht es hier aber nicht :)
Das Prinzip, die GUI unabhaengig vom eigentlichen Programm zu
entwickeln hat gleich mehrere Vorteile.
Zum einen kann sich der programmierende Mensch intensiv den
"eigentlichen" Dingen wie z.B. die Datenbankanbindung kuemmern, ohne dass er lange an der Gestaltung
des Frontends schreibt. Zweitens ist es aeusserst muehselig eine
GUI per Hand schreiben zu muessen. Ausserdem lassen sich kleinere
Aenderungen am Aussehen der grafischen Oberflaeche leichter mit
Programmen wie Glade bewerkstelligen, im Idealfall, ohne dass jemand
mit Programmierkenntnissen zu Rate gezogen werden braucht. Ein
wesentlicher Vorteil, der viel Entwicklungszeit spart, ist die einfache
Anpassung des Programms an verschiedene Verwendungszwecke, bei dem der
Kern des Codes wieder verwendet werden kann.
(Einige unbehelligte
Menschen empfinden das Fenster in dem sie rumklicken gerne als
Programm. Das ist aber nur teilweise richtig. Genaugenommen meinen sie
die GUI, die dazu dient, mit dem eigentlichen Programm zu
interagieren - so, wie mit einem Knopf eine Maschine angeschalten
werden kann, ist der Knopf hoechstens Teil der Maschine,
verrichtet selbst aber keine Arbeit. Letztlich steckt die
Logik irgendwo tief unter der Oberflaeche (so auch in diesem Text ;) und diese laesst sich nicht
so einfach per Klick 'n Schubs erstellen. Im voelligen Gegensatz dazu halten einige ProgrammiererInnen
Frontends fuer Zeitverschwendung - wichtiger sind Ihnen meist
Funktionalitaet, Stabilitaet und "sauberer Code".)
Links: --Glade Homepage (englisch)-- --PyGTK Homepage(englisch)-- --ähnlicher Artikel, wie dieser (englisch)-- --Usability Engineering (deutsch)-- TODO:zum Python Programmers Teil diese HowTos |