GUI entry avec auto-complétion possible (zenity) ?

Résolu/Fermé
Swiss Knight Messages postés 1956 Date d'inscription samedi 22 novembre 2008 Statut Membre Dernière intervention 27 juillet 2016 - 28 janv. 2014 à 01:29
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 - 29 janv. 2014 à 07:30
Salut,

Dans un petit script en bash, je cherche à récupérer une info de l'utilisateur.
Je le fais actuellement avec une fenêtre zenity :
zenity --entry --title="Add words" --text="Separate words by commas : \nExisting words are : ${existing_words}" word_1 word_2 word_3


C'est génial, il y a trois mots dans cet exemple, ça marche donc impec', c'est facile.

Le hic -- tout relatif certes, mais le hic quand même -- c'est que je n'ai pas trois, mais plus de 400 entrées à mettre dans cette liste déroulante.....

1) Idéalement, si elles n'apparaissent pas, ce serait pas plus mal, mais bon... Ce n'est pas nécessaire, on vit très bien avec.
2) Plus qu'idéalement, je dirais même que c'est vital ici, il me faudrait de l'auto-complétion, i.e. quand l'utilisateur entre "wor", que ça n'affiche en liste plus que les mots qui commencent par "wor" ! Exactement à la manière de google ou youtube quand on lance une recherche ; ils proposent ce qui complète notre début de recherche, et uniquement ça !
Même la console le fait (avec la touche tab, mais elle le fait)...
Je me dis donc qu'avec une simple fenêtre zenity on devrait pouvoir faire ça aussi, mais je n'ai strictement rien trouvé !

Toute aide est donc la bienvenue !!
${Merci} ;)
A voir également:

2 réponses

zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 417
28 janv. 2014 à 14:52
Salut,

Je viens de faire un test avec zenity et l'option --list avec un fichier en paramètre et ça fait exactement ce que tu veux...

Voilà le contenu de mon fichier :
$ cat plop 
arbre
arc
archet
bal
ballon
bar
cheval
choucroute
chien
clé
maison
maman
marteau
marseillais
tarte
tourte
tourteau
vol
volaille
voleur
voltige
Voilà la commande :

zenity --list --title=CCM --text="Faites votre choix..." --column="Nom"  $(sed ':z;N;$! bz;s/\n/ /g' plop)


Et le résultat à l'écran.

La fenêtre de choix :


Et lorsque je tape les premières lettres d'un mot (ici vol), la liste se met directement sur le 1er mot commençant par
vol
, puis j'ai rajouté un
a
et le mot
volaille
a été automatiquement surligné :


;-))
1
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 417
28 janv. 2014 à 15:04
Oups ;-[

Désolé j'avais lu en diagonale la demande principale qui était la saisie de plusieurs noms ;-(
0
Swiss Knight Messages postés 1956 Date d'inscription samedi 22 novembre 2008 Statut Membre Dernière intervention 27 juillet 2016 110
28 janv. 2014 à 20:02
Non c'est ok... je peux "lier" des mots simples présents dans un fichier comme tu l'as fait, et faire en sorte que ça aille chercher dans un autre une "ligne" de plusieurs mots qui lui correspond, c'est d'ailleurs ce que je vais faire. Merci du tuyaux, j'avais pas pensé que l'option -list puisse faire ça, et encore moins que l'autocomplétion existe dans cette option ! Merci
0
Swiss Knight Messages postés 1956 Date d'inscription samedi 22 novembre 2008 Statut Membre Dernière intervention 27 juillet 2016 110
28 janv. 2014 à 22:11
Petite question ;

Que fait la 1ère partie de la commande sed (jusqu'au point-virgule) ?
parce que j'ai des entrées avec des espaces dans le fichier plop, et elles sont séparées en deux entrées distinctes dans la liste de choix...
(ps : j'ai aussi des entrées avec les caractères suivants ; apostrophes, traits d'union et caractères accentués).

Pour l'instant j'ai ça, qui fonctionne, mais qui n'est peut-être pas très propre :
choix=$(cat plop | zenity --list --title="Add words" --text="Existing words are : ${existing_words}" --column="Nom" )

0
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 417
29 janv. 2014 à 07:30
En fait je faisais en sorte de tout mettre sur une seule ligne séparée par des espaces, mais tout compte fait, le
cat ficher | zenity...
est plus que parfait ;-)
0