De Wiki de la communauté Mandriva.
Dans cet article, nous allons nous intéresser à la commande kdialog qui permet à partir d'un script shell de dialoguer avec l'utilisateur sous kde.
Généralement un script utilise les commandes echo et read pour afficher des messages à l'écran ou lire des données au clavier. Le script communique avec l'utilisateur en mode texte, dans la fenêtre d'exécution et n'utilise pas de boîte de dialogue ni de fenêtre pourtant disponibles dans les environnements de bureau.
Sous kde, c'est la commande kdialog qui rend possible l'utilisation de l'interface graphique pour dialoguer avec l'utilisateur à partir d'un script.
Premier exemple
Allez dans Menu K -> Outils -> Konsole pour ouvrir un interpréteur de commandes et tapez à l'invite:
[utilisateur@ordi ~]$ kdialog --msgbox 'bonjour!'
Vous voyez alors la boîte suivante s'afficher:
Affichage d'une boîte de dialogue
La commande kdialog permet d'afficher plusieurs types de boîtes de dialogues.
Selon un paramètre fourni à la commande, on affiche une boîte de dialogue
- d'affichage de texte (paramètre --textbox),
- d'information (paramètre --msgbox),
- de saisie de texte (paramètre --inputbox),
- de saisie de texte (paramètre --textinputbox),
- d'excuse (paramètre --sorry),
- d'erreur (paramètre --error),
- de notification n'interrompant pas le déroulement du programme (paramètre --passivepopup),
- de demande de mot de passe (paramètre --password),
- de confirmation (oui/non) (paramètre --yesno),
- de confirmation (oui/non/abandon) (paramètre --yesnocancel),
- d'avertissement et de confirmation (oui/non) (paramètre --warningyesno),
- d'avertissement et de confirmation d'abandon (continuation/abandon) (paramètre --warningcontinuecancel),
- d'avertissement et de confirmation (oui/non/abandon) (paramètre --warningyesnocancel),
- présentant un menu (paramètre --menu),
- de sélection de couleur (paramètre --getcolor),
- en forme de liste déroulante (paramètre --combobox),
- en forme de liste à choix multiples (paramètre --checklist),
- en forme de liste à choix unique (paramètre --radiolist),
- de sélection et d'ouverture d'un fichier existant (paramètre --getopenfilename),
- d'enregistrement d'un fichier (paramètre --getsavefilename),
- de sélection d'un dossier existant (paramètre --getexistingdirectory),
- d'ouverture d'une URL existante (paramètre --getopenurl),
- d'enregistrement d'une URL (paramètre --getsaveurl),
- de choix d'icône (paramètre --geticon),
- de barre de progression (paramètre --progressbar),
- de calendrier (paramètre --calendar),
- à glissière retournant la valeur sélectionnée (paramètre --slider).
D'autres paramètres permettent par exemple de changer le titre de la boîte –title suivi du nouveau titre.
Récupération de la réponse
Lorsque la commande kdialog renvoie une valeur, qui peut-être la réponse à une question, un mot de passe par exemple, elle la place sur la sortie standard. On peut vérifier si tout s'est bien passé en lisant le contenu de la variable spéciale $?.
Boîte de dialogue d'affichage de texte
Avec l'option textbox, la commande kdialog affiche le contenu d'un fichier texte donné.
Par exemple, créons le fichier texte fichier.txt, avec la commande
[utilisateur@ordi ~]$ echo "table de multiplication" > fichier.txt
et appelons kdialog
[utilisateur@ordi ~]$ kdialog --textbox fichier.txt
Le contenu du fichier s'affiche dans une boîte de dialogue, qui se ferme après avoir appuyé sur ok.
Boîte de dialogue d'information
L'option —msgbox affiche dans une boîte de dialogue le message placé entre guillemets et attend l'accord de l'utilisateur avant de poursuivre.
[utilisateur@ordi ~]$ kdialog --msgbox "Mot de passe correct. Le système transmet toutes vos données."
Boîte de dialogue de saisie de texte
La commande kdialog avec l'option —inputbox affiche une une boîte de saisie de texte, la chaîne de caractères que la commande attend après l'option correspond au titre de la boîte de dialogue.
[utilisateur@ordi ~]$ kdialog --inputbox "Votre remarque:"
Pour récupérer le texte saisi par l'utilisateur, on peut placer le résultat dans une variable de la manière suivante:
[utilisateur@ordi ~]$ a=$(kdialog --inputbox "Votre remarque:");echo "Jordi a écrit dans la boîte: " $a
Boîte de dialogue d'excuse
[utilisateur@ordi ~]$ kdialog --sorry "Le fichier n'a pu être enregistré. Disque dur endommagé."
Boîte de dialogue d'erreur
[utilisateur@ordi ~]$ kdialog --error "Erreur 9999. Le système va redémarrer."
Boîte de dialogue de notification n'interrompant pas le déroulement du programme
[utilisateur@ordi ~]$ kdialog --passivepopup "Cette fenêtre va disparaître dans 5 secondes." 5
Boîte de dialogue de demande de mot de passe
[utilisateur@ordi ~]$ kdialog --password "Entrez votre mot de passe"
Boîte de dialogue de confirmation (oui/non)
[utilisateur@ordi ~]$ kdialog --yesno "Le téléchargement n'est pas terminé. Voulez-vous vraiment arrêter?"
Boîte de dialogue de confirmation (oui/non/abandon)
[utilisateur@ordi ~]$ kdialog --yesnocancel "Voulez-vous rechercher le mot dans tous les dossiers?"
Boîte de dialogue d'avertissement et de confirmation (oui/non)
[utilisateur@ordi ~]$ kdialog --warningyesno "Le téléchargement n'est pas terminé. Voulez-vous vraiment arrêter?"
Boîte de dialogue d'avertissement et de confirmation d'abandon (continuation/abandon)
[utilisateur@ordi ~]$ kdialog --warningcontinuecancel "Vous allez détruire le secteur de démmarage. Voulez-vous continuer?"
Boîte de dialogue d'avertissement et de confirmation (oui/non/abandon)
[utilisateur@ordi ~]$ kdialog --warningyesnocancel "Le fichier sera détruit après cette opération. Voulez-vous le remplacer?"
Boîte de dialogue présentant un menu
[utilisateur@ordi ~]$ kdialog --menu "Que voulez-vous boire?" a "un thé" b "un café" c "une limonade"
Boîte de dialogue de sélection de couleur
[utilisateur@ordi ~]$ kdialog --getcolor
Boîte de dialogue en forme de liste déroulante
[utilisateur@ordi ~]$ kdialog --combobox "Choisissez une couleur" "rouge" "vert" "bleu" "jaune"
Boîte de dialogue en forme de liste à choix multiples
[utilisateur@ordi ~]$ kdialog --checklist "Choisissez une boisson:" 1 "Café sans sucre" off 2 "Café" on 3 "Thé" off
Boîte de dialogue en forme de liste à choix unique
[utilisateur@ordi ~]$ kdialog --radiolist "Choisissez une ville:" 1 "Paris" off 2 "Marseille" on 3 "Lyon" off
Boîte de dialogue de sélection et d'ouverture d'un fichier existant
[utilisateur@ordi ~]$ kdialog --getopenfilename .
Boîte de dialogue d'enregistrement d'un fichier
[utilisateur@ordi ~]$ kdialog --yesno "Le téléchargement n'est pas terminé. Voulez-vous vraiment arrêter?"
Boîte de dialogue de sélection d'un dossier existant
[utilisateur@ordi ~]$ kdialog --yesno "Le téléchargement n'est pas terminé. Voulez-vous vraiment arrêter?"
Boîte de dialogue d'ouverture d'une URL existante
[utilisateur@ordi ~]$ kdialog --yesno "Le téléchargement n'est pas terminé. Voulez-vous vraiment arrêter?"
Boîte de dialogue d'enregistrement d'une URL
[utilisateur@ordi ~]$ kdialog --getsaveurl .
Boîte de dialogue de choix d'icône
[utilisateur@ordi ~]$ kdialog --yesno "Le téléchargement n'est pas terminé. Voulez-vous vraiment arrêter?"
Boîte de dialogue de barre de progression
[utilisateur@ordi ~]$ kdialog --progressbar "Progression " ?
Boîte de dialogue de calendrier
[utilisateur@ordi ~]$ kdialog --calendar "Calendrier"
Boîte de dialogue à glissière retournant la valeur sélectionnée
[utilisateur@ordi ~]$ kdialog --slider "Carburant" 0 100 5
Liens externes