Dialog
Aus Ubuntu-Forum Wiki
Robin2 (Diskussion | Beiträge) |
Robin2 (Diskussion | Beiträge) |
||
Zeile 7: | Zeile 7: | ||
[[Bild:Dialog.png|thumb|200px|Screenshot einer mit Dialog erzeugten Oberfläche]] | [[Bild:Dialog.png|thumb|200px|Screenshot einer mit Dialog erzeugten Oberfläche]] | ||
= Allgemeines = | = Allgemeines = | ||
- | Dialog ist ein auf [[ncurses]] basierendes Programm, welches es ermöglicht in einem [[Shell]]-Script auf einfache Art und Weise ein "grafische"-Benutzeroberfläche zu erstellen. Ähnliche Programme | + | Dialog ist ein auf [[ncurses]] basierendes Programm, welches es ermöglicht in einem [[Shell]]-Script auf einfache Art und Weise ein "grafische"-Benutzeroberfläche zu erstellen. Ähnliche Programme sind Dialog sind [[Zenity]] oder [[KDialog]], welche aber den Nachteil haben, dass sie einen [[XServer]] benötigen. |
= Installation = | = Installation = | ||
Dialog ist in den [[Paketquellen]] von Ubuntu vorhanden und kann über den Befehl | Dialog ist in den [[Paketquellen]] von Ubuntu vorhanden und kann über den Befehl | ||
Zeile 31: | Zeile 31: | ||
In dieser Zeile fällt als erstes das Argument ''--backtitle'' auf, welches die Funktion hat, den nachfolgenden String als Überschrift '''über''' dem Fenster anzuzeigen. Dazu passend, existiert es auch das Argument ''--title'', welches eine Überschrift ''in'' das Fenster zeichnet. | In dieser Zeile fällt als erstes das Argument ''--backtitle'' auf, welches die Funktion hat, den nachfolgenden String als Überschrift '''über''' dem Fenster anzuzeigen. Dazu passend, existiert es auch das Argument ''--title'', welches eine Überschrift ''in'' das Fenster zeichnet. | ||
- | Auf dieses Argument hin folgt der Parameter ''--yesno'' (Yes/No). Dieser Parameter hat die Funktion eine Dialogbox anzuzeigen, welche zwei Button hat, einen '''Ja''' und einen '''Nein''' Button. Wie bei der ''--msgbox'' gibt es auch hier einen String, der den auszugebenden Text anzeigt und zwei Integer (Ganzzahlen), welche die Höhe und die Breite der Dialogbox angeben. Einem aufmerksamen Leser sollte nun aufgefallen seien, das sowohl Höhe als auch Breite der Box auf 0 steht. Das hat die Folge, das die Größe der Box sich automatisch an die Länge des Textes anpasst. | + | Auf dieses Argument hin folgt der Parameter ''--yesno'' (Yes/No). Dieser Parameter hat die Funktion eine Dialogbox anzuzeigen, welche zwei Button hat, einen '''Ja''' und einen '''Nein''' Button. Wie bei der ''--msgbox'' gibt es auch hier einen String, der den auszugebenden Text anzeigt und zwei Integer (Ganzzahlen), welche die Höhe und die Breite der Dialogbox angeben. Einem aufmerksamen Leser sollte nun aufgefallen seien, das sowohl Höhe als auch Breite der Box auf 0 steht. Das hat die Folge, das die Größe der Box sich automatisch an die Länge des Textes anpasst. |
+ | |||
+ | Nun stellt sich natürlich die Frage auf, wie man nun letztendlich herausfindet, welcher der Button schließlich gedrückt wurde? Dazu benutzt man die Umgebungsvariable, ''$?'', in welcher der Wert gespeichert ist, der vom letzten Befehl mit exit zurückgegeben wurde. In diesem Fall wäre das 0 für Ja und 1 für Nein. Diesen Wert kann man nun mit einer normalen IF-Anweisung auswerten. |
Version vom 3. Juli 2009, 20:33 Uhr
Dieser Artikel wird gerade neu erstellt und ist noch nicht vollständig. |
Der Inhalt dieses Artikels unterlag noch keiner Revision. Er kann geeignet sein, ein System zu beschädigen oder zu zerstören. Die Anleitungen sollten noch nicht genutzt werden. |
Dieser Artikel setzt Grundkenntnisse in der Entwicklung von BASH-Scripten voraus |
1 Allgemeines
Dialog ist ein auf ncurses basierendes Programm, welches es ermöglicht in einem Shell-Script auf einfache Art und Weise ein "grafische"-Benutzeroberfläche zu erstellen. Ähnliche Programme sind Dialog sind Zenity oder KDialog, welche aber den Nachteil haben, dass sie einen XServer benötigen.
2 Installation
Dialog ist in den Paketquellen von Ubuntu vorhanden und kann über den Befehl
sudo apt-get install dialog
installiert werden.
3 Benutzung
Dialog wird mit dem Befehl dialog aufgerufen, danach folgen Argumente, welche beschreiben, wie die Benutzeroberfläche letztendlich aussehen aussehen soll. Dies soll nun an einem einfachen Hello World-Programm demonstriert werden:
dialog --msgbox "Hello World" 5 20
Mithilfen von --msgbox wird dialog mitgeteilt, dass es eine einfache Nachricht in einem Fenster anzeigen soll. Danach folgt ein String (Zeichenkette), welcher angibt, wie der Inhalt der Nachricht lautet, in diesem Fall ein einfaches Hello World. Die beiden Zahlen hinter dem String geben die Größe des Fensters an (Zuerst folgt die Höhe, danach die Breite).
Nun haben wir schon einen kleinen Einblick in die Syntax von Dialog bekommen, Dialog kann aber noch viel mehr als einfach Meldungen in Fenstern auszugeben. Im folgenden werden wir lernen, wie man über Dialog eine Interaktion mit dem Benutzer erreichen kann. Dazu werden werden wir ein kleines Bash-Script schreiben, dass den Benutzer fragt, ob es ihm gut geht:
#!/bin/bash dialog --backtitle "Interagierendes Dialogprogram" --yesno "Geht es dir gut?" 0 0 if [ $? -eq 0 ]; then dialog --msgbox "Das freut mich!" 0 0 else dialog --msgbox "Das tut mir aber leid!" 0 0 fi
Dieses Programm fragt den Benutzer, ob es ihm gut geht, und teilt dem Benutzer je nach antwort entweder mit, dass es sich freue, oder, dass es ihm leid tue. Wie man sieht, tauchen hier einige neue Funktionen von Dialog auf, welche wir näher betrachten wollen:
dialog --backtitle "Interagierendes Dialogprogram" --yesno "Geht es dir gut?" 0 0
In dieser Zeile fällt als erstes das Argument --backtitle auf, welches die Funktion hat, den nachfolgenden String als Überschrift über dem Fenster anzuzeigen. Dazu passend, existiert es auch das Argument --title, welches eine Überschrift in das Fenster zeichnet.
Auf dieses Argument hin folgt der Parameter --yesno (Yes/No). Dieser Parameter hat die Funktion eine Dialogbox anzuzeigen, welche zwei Button hat, einen Ja und einen Nein Button. Wie bei der --msgbox gibt es auch hier einen String, der den auszugebenden Text anzeigt und zwei Integer (Ganzzahlen), welche die Höhe und die Breite der Dialogbox angeben. Einem aufmerksamen Leser sollte nun aufgefallen seien, das sowohl Höhe als auch Breite der Box auf 0 steht. Das hat die Folge, das die Größe der Box sich automatisch an die Länge des Textes anpasst.
Nun stellt sich natürlich die Frage auf, wie man nun letztendlich herausfindet, welcher der Button schließlich gedrückt wurde? Dazu benutzt man die Umgebungsvariable, $?, in welcher der Wert gespeichert ist, der vom letzten Befehl mit exit zurückgegeben wurde. In diesem Fall wäre das 0 für Ja und 1 für Nein. Diesen Wert kann man nun mit einer normalen IF-Anweisung auswerten.