Zenity est un outil du monde GNU/Linux sous GNOME permettant d'afficher aisément, depuis des scripts, des widgets basées sur les librairies GTK+ et Glade. Un package Octave-Forge, également nommé zenity, permet d'accéder aux possibilités de cet outil via des fonctions Octave nommées zenity_*.
Boîte d'information : zenity_message('Message d''info\nsur plusieurs lignes', 'info'); Notez la présence du \n pour passer à la ligne |
|
Boîte d'avertissement : zenity_message('Message d''avertissement...', 'warning'); |
|
Boîte d'erreur : zenity_message('Message d''erreur...', 'error'); |
|
Pour afficher un message/avertissement/erreur dans la zone de notification Windows ou Linux, on utilisera zenity_notification de façon analogue à zenity_message | |
Question oui/non : true_false = zenity_message('Voulez-vous... ?', 'question') |
|
Affichage d'information dans un champ de plusieurs lignes : zenity_text_info('Information', "Une longue info\n sur plusieurs lignes\nnon editable", true)
Notez ici la nécessité, compte tenu des \n, d'entourer la chaîne par |
|
Saisie dans un champ de plusieurs lignes : chaine = zenity_text_info('Votre commentaire', 'a inserer ici...') |
|
Saisie dans champ simple : chaine = zenity_entry('Pays', 'Suisse') |
|
Saisie dans champ caché : chaine = zenity_entry('Mot de passe', '', true) |
|
Choix à partir d'une liste :
chaine = zenity_list('Choisir',{'Couleur'}, ... Les 2e et 3e paramètres doivent être des tableaux cellulaires de chaînes |
|
Choix multiple dans une liste :
tabcell = zenity_list('Choisir', ... Semble bugué sous Octave 3.2 à 4.0 Windows+Linux au niveau retour d'info. |
|
Choix d'une ligne dans un tableau :
chaine = zenity_list('Age et taille', ...
On récupère ici seulement l'âge. Remarquez qu'on peut trier les lignes en cliquant sur les en-têtes de colonne |
|
Saisie de plusieurs champs en ligne :
tabcell = zenity_list('Definir', ... |
|
Définition d'une valeur par slider :
nombre = zenity_scale('Temperature', ...
Le 3e paramètre est la valeur par défaut, le 4e la valeur minimum, le 5e la |
|
Sélection d'une date (jour/mois/année) : jour_chaine = zenity_calendar('Choisir un jour :', 20,9,2010) La date spécifiée (jour/mois/année) aux 2e à 4e param. est la valeur par défaut
Bugé sous Octave Windows 3.2.4 à 4.0 (mais pas Linux) au niveau retour |
|
Sélection d'un fichier existant (voir Illustration ci-dessous) : fichier = zenity_file_selection('Choisir fichier') Définition d'un fichier a créer : fichier = zenity_file_selection('Fichier a créer', 'save') Sélection multiple de plusieurs fichiers existants : fichiers_tabcell = zenity_file_selection('Choisir fichier(s)', 'multiple') Sélection d'un répertoire existant : dossier = zenity_file_selection('Choisir dossier', 'directory')
IMPORTANT : sous Linux, ce qui est retourné sur les variables fichier et répertoire ci-dessus c'est une chaîne de caractère contenant le path absolu suivi du nom de fichier (par exemple /home/dupond/exos_matlab/mon_fichier.txt). Sous Windows par contre, cette fonction zenity_file_selection retourne dans tous les cas un tableau cellulaire dans lequel une cellule contient la lettre de lecteur sans le :\ , et l'autre cellule contient le path suivi du nom de fichier (par exemple Z dans la 1ère cellule, et \exos_matlab\mon_fichier.txt dans la seconde)
|
|
Affichage d'une barre de progression :
widget = zenity_progress('Operation en cours', ... 'auto-close') for pourcent=0:2:100 zenity_progress(widget, pourcent, ... sprintf('%u ...',pourcent) ) pause(0.1) end |