ubuntuusers.de

Hinweis: Dies ist ein statischer Snapshot unseres Wikis vom 25. März 2013 und kann daher nicht bearbeitet werden. Der aktuelle Artikel ist unter wiki.ubuntuusers.de zu finden.

KDialog

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

Wer kleine Skripte schreibt und nutzt, möchte Rückmeldungen oder Fragen des PCs in manchen Fällen auch optisch ansprechend gestalten. Benutzerabfragen in einem eigenen Dialog anzuzeigen, wäre da ein erster Schritt. Für KDE bzw. Qt-Dialoge gibt es dafür das Programm kdialog, welches standardmäßig über das Paket kdebase-bin installiert ist und nicht extra installiert werden muss. (Für GNOME bzw. GTK-Dialoge gibt es das Programm Zenity mit ähnlicher Funktionalität.)

Anhand eines kleines Skriptes sollen die Möglichkeiten des Programms aufgezeigt werden.

kdialog.png

Beispielskript

Das Beispielskript ist recht simpel aufgebaut: Es soll zuerst eine Warnung zum Programm angezeigt werden, dann wird vom Benutzer eine Texteingabe und eine Passworteingabe gefordert und alles am Ende wieder angezeigt. Die Quellcodezeilen sind nummeriert, um sie später besser erklären zu können.

Allgemeine Informationen

Zuvor ein paar allgemeine Informationen zur Shell-Programmierung: Die erste Zeile eines Skriptes muss immer das Shebang #! inclusive Pfad zum Skriptinterprter (hier /bin/sh) beinhalten. Die if-then-Konstrukte werden benutzt, um festzustellen, ob der Benutzer auf "Abbrechen" bzw. "Nein" geklickt hat. Der Befehl exit beendet in so einem Fall das Skript. Ein \n in einer Textzeile sorgt für einen Zeilenumbruch. Die Variablenzuweisung mit = kann später per $ wieder ausgelesen werden.

Mehr Informationen zu Skript-Befehlen findet man im Artikel Shell/Bash-Skripting-Guide für Anfänger

Quellcode

Folgenden Text gibt man (ohne Zeilennummern!) in einem Editor [1] ein:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
#!/bin/bash
if ! kdialog --warningcontinuecancel 'Dieses Programm ist eigentlich harmlos!\nTrotzdem fortfahren?'; then
exit;
fi
if ! NAME=$(kdialog --inputbox 'Bitte geben Sie Ihren Namen ein:' --title 'Wer sind Sie?'); then
exit;
fi
if ! PASS=$(kdialog --password 'Bitte geben Sie das Passwort ein:' --title 'Und das Passwort?'); then
exit;
fi
kdialog --msgbox 'Ihr Name: '$NAME'\nIhr Passwort: '$PASS --title 'Das Ergebnis!'

Nun wird das Skript abgespeichert, als Dateiendung wählt man .sh (beispielsweise test_01.sh). Nachdem die Skript-Datei ausführbar gemacht wurde[2], kann man das Skript in einem Terminal per

./test_01.sh 

starten.

Erläuterungen
Zeile Bedeutung
3 Die Option --warningcontinuecancel zeigt eine Warnung mit den Optionen "Fortsetzen" und "Abbrechen" an. Der folgende Text in Hochkommas wird ausgegeben. \n bewirkt einen Zeilenumbruch innerhalb des Textes.
7 Die Option --inputbox zeigt ein Texteingabefeld mit den Optionen "Ok" und "Abbrechen" an. Mit der Option --title kann der Fenstertitel bestimmt werden.
11 Die Option --password zeigt wieder ein Texteingabefeld. Der Unterschied zu --inputbox besteht darin, dass eingegebener Text verschlüsselt dargestellt wird.
15 Am Ende wird per --msgbox ein Informationsfenster mit den eingegebenen Daten angezeigt.

Weitere Optionen

Weitere Optionen
Option Aktion
--msgbox Information
--warningyesno
--warningcontinuecancel
--warningyesnocancel
Warnung
--error Fehler
--yesno
--yesnocancel
Frage
--passivepopup Passives Popup (schließt automatisch)
--inputbox Texteingabe
--getopenfilename
--getsavefilename
Dateiauswahl
--combobox
--checklist
--radiolist
Listenauswahl
--progressbar Fortschrittsanzeige
--password Passwort

Dies ist natürlich nur ein Teil von dem, was KDialog kann. Genaueres erfährt man im Terminal per

kdialog --help 

oder in der Manpage von KDialog.

ubuntuusers.local › WikiKDialog