Mit dem dialog-Befehl (bzw. kdialog-Befehl) könne in Scripten Abfragedialoge verwendet werden.
Mögliche Arten von Dialogen:
--yesno |
Rückfrage mit Knöpfen für Ja/Nein |
--yesnocancel |
Rückfrage mit Knöpfen für Ja/Nein/Abbrechen |
--warningyesno |
Warnung mit Knöpfen für Ja/Nein |
--warningcontinuecancel |
Warnung mit Knöpfen für Fortfahren/Abbrechen |
--warningyesnocancel |
Warnung mit Knöpfen für Ja/Nein/Abbrechen |
--sorry |
„Bedaure“-Nachricht |
--error |
Fehlermeldung |
--msgbox |
Benachrichtigung |
--inputbox |
Eingabefeld |
--password |
Passwort-Dialog |
--textbox |
Textfeld-Dialog |
--textinputbox |
Eingabefeld-Dialog |
--combobox |
Kombinationsfeld-Dialog |
--menu |
Menü-Dialog |
--checklist |
Ankreuzliste |
--radiolist |
Auswahldialog |
--passivepopup |
Passives Aufklappfenster (Popup) |
--getopenfilename |
Dialog zum Öffnen einer Datei |
--getsavefilename |
Dialog zum Speichern einer Datei |
--getexistingdirectory |
Dialog zur Auswahl eines Ordners |
--getopenurl |
Dialog zum Öffnen einer Adresse (URL) |
--getsaveurl |
Dialog zum Speichern einer Adresse (URL) |
--geticon |
Dialog für die Symbolauswahl |
--progressbar |
Dialog für Fortschrittsanzeige. Gibt für die Kommunikation eine D-Bus-Referenz aus. |
--getcolor |
Dialog zur Auswahl einer Farbe |
--dontagain |
Einrichtungsdatei und Optionsname zum Speichern des Status „nicht noch einmal anzeigen/fragen“ |
--slider |
Schieberegler-Dialog, gibt den ausgewählten Wert zurück |
--calendar |
Kalender-Dialog, gibt ein Datum zurück |
Optionen zur Konfiguration:
--yes-label |
Text als Beschriftung des „Ja“-Knopfes verwenden |
--no-label |
Text als Beschriftung des „Nein“-Knopfes verwenden |
--cancel-label |
Text als Beschriftung des „Abbrechen“-Knopfes verwenden |
--continue-label |
Text als Beschriftung des „Weiter“-Knopfes verwenden |
--title |
Dialog-Titel |
--default |
Voreingestellter Eintrag für Kombinationsfeld, Menü und Farbe |
--multiple |
Ermöglicht die Rückgabe mehrere Dateien bei Anwendung der Parameter --getopenurl und --getopenfilename |
--separate-output |
Listenelemente in separaten Zeilen ausgeben (für die Optionen checklist und Dateien öffnen mit --multiple) |
--print-winid |
Gibt die winId (Fenster-Kennung) für jeden Dialog aus |
--attach |
Macht den Dialog transient für X-Programme, die von winId vorgegeben werden |
Beispiele:
path=/home/user/folder/ ans=`kdialog --caption "Ordner wählen" --getexistingdirectory $path` 2> /dev/null > /dev/null [ $? = 0 ] && path=$ans
path=/home/user/folder/ outfile=`kdialog --caption "Titel" --getopenfilename $path *.txt` [ $? = 0 ] && file=$outfile
kdialog --caption "Titel" --yesno "Text" [ $? = 0 ] && echo "Ja wurde gewählt"
anzahl=`kdialog --caption "Titel" --inputbox "Anzahl eingeben?" 2` [ $? = 1 ] && anzahl=1
kdialog --caption "Titel" --msgbox "Infotext"
SRC=/home/user/.crypt DST=/home/user/crypt kdialog --title "encFS: Enter passphase..." --password "Enter passphrase for [$DST]" | encfs $SRC $DST
#!/bin/bash ans=`kdialog --caption "Titel" --geometry 250x250 --menu "Text" \ a "Auswahl 1" \ b "Auswahl 2" \ c "Auswahl 3" \ d "Auswahl 4"` if [ $? = 0 ]; then case $ans in a) echo "Auswahl 1";; b) echo "Auswahl 2";; c) echo "Auswahl 3";; d) echo "Auswahl 4";; esac fi
#!/bin/bash qdbusRef=$(kdialog --progressbar 'Text') qdbus $qdbusRef Set "" maximum 100 > /dev/null qdbus $qdbusRef Set "" autoClose true > /dev/null qdbus $qdbusRef showCancelButton true > /dev/null qdbus $qdbusRef setLabelText "Text für Dialog" > /dev/null sleep 2 for ((i=1; i<=100; i++)); do cancelled=$(qdbus $qdbusRef org.kde.kdialog.ProgressDialog.wasCancelled) if [ "$cancelled" == "true" ]; then echo "cancelled" qdbus $qdbusRef org.kde.kdialog.ProgressDialog.close > /dev/null exit 1 fi sleep 0.01 qdbus $qdbusRef Set "" value $i > /dev/null qdbus $qdbusRef setLabelText "Schritt $i" > /dev/null done