Dialog

Aus Ubuntu-Forum Wiki

(Unterschied zwischen Versionen)
Wechseln zu: Navigation, Suche
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 wie Dialog sind [[Zenity]] oder [[KDialog]], welche aber den Nachteil haben, dass sie einen [[XServer]] benötigen.
+
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

Info.png Dieser Artikel wird gerade neu erstellt und ist noch nicht vollständig. Info.png
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
Screenshot einer mit Dialog erzeugten Oberfläche

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.

Meine Werkzeuge
Namensräume
Varianten
Aktionen
Forum
Navigation
Internes
Bearbeitungshilfen
Werkzeuge