Kommander/GUI
Achtung dieser Artikel ist noch in Arbeit und dient vorläufig nur als Vorlage. Dieser Beitrag zu Linux oder der Abschnitt ist in Bearbeitung. Weitere Informationen findest du hier. Der Ersteller arbeitet an dem Beitrag oder Abschnitt und entsorgt den Wartungsbaustein spätestens 3 Tage nach der letzten Bearbeitung. Änderungen außer Rechtschreibkorrekturen ohne Absprache mit dem Urspungsautor sind möglichst zu vermeiden, solange dieser Baustein noch innerhalb der genannten Frist aktiviert ist. |
Einführung: Der Weg zur GUI - Die Funktionen - Screenshots |
Inhaltsverzeichnis
Das Editorfenster
So sieht die GUI aus wenn sie zum Editieren mit dem kmdr-editor aufgerufen wird: Editor-Dialog
Gliederung der GUI
Ich habe die GUI in vier große Abschnitte eingeteilt:
Aktionenauswahl
Links oben können die gewünschten Aktionen durch Drücken vom Buttons ausgewählt werden. Folgende Kommander-Widgets sind dabei beteiligt:
- RadioButton: Auswahl der Aktionen (Brennen, Sichern, usw.)
- Label: Dient zur Anzeige von Kommentaren (Video-DVD...)
- ButtonGroup: Hierin sind die RadioButtons und die Labels organisiert
- ExecButton: Damit wird die ausgewählte Aktion gestartet (Go)
- EditorTabWidget: Weitere Aktionen können über Reiter sichtbar gemacht werden
Log
Im Log-Fenster links unten wird der Bearbeitungsfortschritt der gestarteten Aktion angezeigt. Hier bürgen folgende Widgets für das Gelingen:
- TextBrowser: Hierin erfolgt die Anzeige
- GroupBox: Sieht einfach besser aus, wenn der TextBrowser da drin liegt
Debug-Log
Rechts unten ist das Debug-Log zu finden. Damit kann man, wenn es gewünscht wird, noch genauere Anzeigen des laufenden Scripts bekommen. Da hier die Ausgabe des Standard-Fehlerkanal angezeigt wird, kann man gut nachverfolgen, wo es Probleme gegeben hat, wenn etwas nicht so klappt, wie man es sich eigentlich vorstellt.
- TextWidget: Ausgabe von stderr (Standard-Fehlerkanal)
- RadioButton: Steuern die Aktualisierung der Ausgabe (Ein, Aus)
- ButtonGrop: Darin sind die RadioButtons organisiert
- ExecButton: Fensteranzeige leeren (Clear)
- GroupBox: Läßt das, was zusammen gehört, auch so erscheinen
Unsichtbare Widgets
Klingt gut, der Titel, oder? Ja, die Widgets rechts oben sind tatsächlich unsichtbar im kmdr-executor. Editiert man aber den Dialog, sieht man sie (kmdr-editor).
- ScriptObject: Diese drei Objekte enthalten ausführbaren Kommander- bzw.Bash -Code
- Timer: Periodische Abfrage der Anzeigefenster bzw. Zeitverzögerung
- blaue Abstandslinien: Sind für das Layout wichtig
Das Formular
Wir haben bereits in der Einleitung gesehen, wie ein neuer Kommander-Dialog erstellt wird. Ganz kurz noch einmal zu Wiederholung:
- kmdr-editor starten
- Dialog drücken bzw. Datei - neu
- Den Dialog speichern unter einem sinnvollen Namen
Das Formular (EditorDialog) bekommt von uns nun folgende Eigenschaften zugeteilt:
- name: GUI
- baseSize: Breite 1024, Höhe 768
- caption: dvb_wiki_script oder Vom DVB zur DVD und einiges mehr
Die Zuteilung eines aussagekräftigen Namens, mit dem das Element angesprochen werden kann, ist eminent wichtig. Ich hatte dies beim Programmieren der GUI versäumt. Erst, als die Zuordnung der Elemente mit steigender Komplexität des Dialogs immer undurchsichtiger wurde, habe ich nachträglich Namen vergeben.
Die Basis-Grösse ist die Fenstergrösse, mit der Kommander den Dialog startet. Man könnte auch sagen, der Dialog ist optimiert für eine Bildschirmgrösse von 1024 x 768 Pixel.
Und die Überschrift... Na ja, irgend etwas musste ich ja rein schreiben.
Das Log
Weiter mit dem Log-Fenster links unten.
Funktionsweise
Das DVB-Script ist so programmiert, daß an geeigneter Stelle Texte in eine Datei geschrieben werden ( text >> ~/.dvb_script_gui.ini/fortschrittfenster ). Wie zu sehen ist, werden die Texte zum schon vorhandenen Dateiinhalt hinzugefügt. Beim (von Kommander initiierten) Start des DVB-Scriptes wird der Inhalt dieser Fortschritsdatei gelöscht ( echo "" > ~/.dvb_script_gui.ini/fortschrittfenster ). Eine Löschung erfolgt auch, wenn das Script beendet wurde.
Diese Fortschrittsdatei wird nun von Kommander mit Hilfe eines Timers und eines ScriptObjects alle 500ms abgefragt. Das Ergebnis der Abfrage wird dann in den TextBrowser geschrieben.
Bausteine
TextBrowser
Wir plazieren einen TextBrowser (aus der Symbolleiste) irgendwo auf dem Formular und stellen folgende Eigenschaften ein:
Einführung: Der Weg zur GUI - Die Funktionen - Screenshots |