Ceci est une ancienne révision du document !



Zenity

Traduction de la courte description sur le site officiel de Zenity. 1)

Zenity est un outil qui permet d'afficher des boites de dialogue GTK+ depuis la ligne de commande ou au travers de scripts shell. Il est similaire à gdialog, mais son but est d'être plus simple. Il appartient à la même famille que dialog (affichage de pseudo boite de dialogue en console), xdialog et cdialog, mais il surpasse tous ces projets en ayant un nom bien plus classe.

Il suffit pour cela d'installer le paquet zenity.

Zenity permet d'afficher 12 types de fenêtre :

Type de fenêtre Argument Description
Calendrier --calendar Affiche un calendrier
Entrée --entry Permet la saisie de caractères
Erreur --error Affiche un erreur à l'écran
Navigateur de fichier --file-selection Permet la sélection d'un fichier
Info --info Affiche une information
Liste --list Affiche une liste
Notification --notification Afficher une notification dans la zone prévue à cet effet
Progress --progress Permet de suivre une progression
Question --question Affiche une question ( OUI / NON )
Info texte --text-info Affiche un texte dans une fenêtre
Avertissement --warning Afficher un avertissement
Scale --scale FIXME Établir une valeur en positionnant un curseur sur une barre

Pour plus d'infos, consulter la page de manuel de zenity.

Il existe un script permettant la création de fenêtres Zenity de façon rapide est simple.

Voir le script Zenity_Generator.

Exemples

Voici quelques infos bonus que certaines personnes ont trouvé. Car comme vous pouvez le constater, les infos sur zenity ne sont pas légions…

Ces fonctions ne semblent pas fonctionner pour les fenêtre "entry".

Zenity est basé sur GTK+, lui même basé sur Pango, il est donc possible d'utiliser certaines fonctions de ce logiciel.

Un module perl permet aussi d'utiliser facilement Zenity au sein des scripts perl, voir la page CPAN associée (en anglais)

Coloration du texte

Rien de mieux qu'un peu de couleur pour égayer un texte, pour cela, il faut utiliser la balise "span color" :

<span color=\"red\">red</span>

Fenêtre de test :

zenity --info --text "
<span color=\"red\">red</span>
<span color=\"green\">green</span>
<span color=\"blue\">blue</span>
<span color=\"yellow\">yellow</span>
<span color=\"magenta\">magenta</span>
<span color=\"white\">white</span>
<span color=\"black\">black</span>
<span color=\"gray\">gray</span>
<span color=\"lightblue\">lightblue</span>
<span color=\"lightgray\">lightgray</span>"

Choix de la police pour le texte

Marre de voir toujours la même police ? Il vous suffit donc d'utiliser la balise "span font-family".

<span font-family=\"Arial\">essai de polices</span>

Fenêtre de test :

zenity --info --text "
<span font-family=\"Arial\">essai de polices</span>
<span font-family=\"sans-serif\">essai de polices</span>
<span font-family=\"Helvetica\">essai de polices</span>
<span font-family=\"impact\">essai de polices</span>
<span font-family=\"sans\">essai de polices</span>
<span font-family=\"webdings\">essai de polices</span>"

Changer la forme de la police

Un mot a besoin de ressortir du reste ? Il suffit de mettre en gras, en italique…

zenity --info --text "
<b>gras</b>
<big>grand</big>
<i>italique</i>
<s>barré</s>
<sub>indice</sub>
<sup>exposant</sup>
<small>petit</small>
<tt>espace entre les lettres</tt>
<u>souligné</u>"

Fenêtre avec liste de choix

Il est possible de créer une fenêtre comme suit :

Pour cela, il faut créer une boite de type "entry" et ajouter les différents choix de la liste à la fin de la commande.

N'oubliez pas les guillemets si vous mettez des espaces dans les réponses. Ex :

zenity --entry --title="Jour" --text="Veuillez indiquer le jour de la semaine" Lundi Mardi Mercredi "Autre jour..."

Pour ajouter une réponse de base, utilisez l'option "entry-text" :

zenity --entry --title="Jour" --text="Veuillez indiquer le jour de la semaine" --entry-text="Lundi" Mardi Mercredi

Boite de message et récupérer la valeur

	if ret=`zenity --entry --title='Titre de la vidéo' --text='Saisissez le titre de la vidéo : '`
		then
			titre=$ret
			if [ "$titre" = "" ]
				then
					echo "Il faut un titre, tient pan t'es mort!"
					exit
			fi
		else
			echo "tsss Un Titre on  dit, pas le bouton annuler!"
			exit
	fi
echo $titre

Autre méthode pour récupérer la valeur

Voici une méthode alternative a celle décrite ci-dessus

dossierSortie=$(zenity --file-selection \
--title="Veuillez selectionner un dossier" \
--text="Choissisez un dossier quelconque" \
--directory);

echo ${dossierSortie}
sleep 10

1)
Zenity is a tool that allows you to display Gtk+ dialog boxes from the command line and through shell scripts. It is similar to gdialog, but is intended to be saner. It comes from the same family as dialog, Xdialog, and cdialog, but it surpasses those projects by having a cooler name.
  • zenity.1264729007.txt.gz
  • Dernière modification: Le 29/01/2010, 02:36
  • par Ban