Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 17/12/2016, à 11:04

ar barzh paour

YAD et son résultat

bonjour à tous
si j'ai bien compris yad
on ne récupèrerait le résultat res=$(yad --form --.....) que si le code de sortie est 0
vrai ou non ?
ce que j'essaie de faire c'est récupérer les valeurs des champs quand je clique sur un boutton qui n'a pas le code de sortie 0

un exemple simple avec une boite field et deux boutons

jpb@jpb-desktop:~$ res=$(yad --form --title="TITRE" --field="N°":TXT --button=Sortir:1 --button=Valider:0)

je rentre 125 et je clique sur "Valider"

jpb@jpb-desktop:~$ 

puis je tape

jpb@jpb-desktop:~$echo $res 

j'obtiens

125|
jpb@jpb-desktop:~$  

ça c'est ce que je veux , j'ai bien récupéré la valeur du champ 125

je recommence

jpb@jpb-desktop:~$ res=$(yad --form --title="TITRE"   --center --field="N°":TXT --button=Sortir:1 --button=Valider:0) 

je rentre 125 et je clique cette fois sur "Sortir"

jpb@jpb-desktop:~$ 

puis je tape

jpb@jpb-desktop:~$echo $res 

jpb@jpb-desktop:~$ 

là on obtient rien je ne récupère pas la valeur rentrée
y-a-t-il une façon de récupérer la valeur du champ même si on n'a pas cliquer sur "valider"?


PC          : B760M DS3H DDR4,  12th Gen Intel(R) Core(TM) i3-12100, RAM DDR4 8GiB -2400 Ubuntu 22.04, 22.04, 23.04
Portable1 : Intel(R) Core(TM)2 Duo CPU     T6570  @ 2.10GHz RAM 4GiB DDR2 667 MHz Ubuntu 23.04 ( en voyage )
Portable2 : T5750  @ 2.00GHz RAM 1GiB DDR2 667 Mhz Ubuntu 20.04 ( batterie HS )
stourm a ran war bep tachenn (Angela Duval) ( Je combats sur tous les fronts )

Hors ligne

#2 Le 17/12/2016, à 12:03

lynn

Re : YAD et son résultat

Bonjour,

Si tu cliques sur sortir, il est normal de ne pas avoir de valeur de champ, non..?

Le code de retour pour "sortir" est de 1 alors à moins de récupérer ce qui a été tapé avec un enregistreur de frappe, je ne vois pas comment faire...

Dernière modification par lynn (Le 17/12/2016, à 12:09)


«C'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison!»

Coluche

Hors ligne

#3 Le 17/12/2016, à 13:23

ar barzh paour

Re : YAD et son résultat

je me suis créé  une fenêtre de saisie avec plusieurs boutons (reprendre , suivant , précédent etc)  et je pensais pouvoir récupérer les valeurs des différents champs pour ensuite effectuer des traitements différents , à priori ce n'est pas comme ça qu'il faut que je m'y prenne   
       

        --button="Afficher la traduction":1			\
	--button="Reprendre":2					\
	--button="Suivant":3					\
	--button="Précédent":5					\
	--button="Arreter":0					\

action=$?
je rajoute que j'utilise $? qui vaut 0 ,1,2,3,4 etc suivant le bouton cliqué
if [[ $action == 1 ]] then ...
pour faire le traitement approprié
je fait une boucle infinie

while :
do
yad ...
if [[ $action == 0 ]]
then exit 0
fi
if [[ $action == 1 ]]
then <autre chose>
fi
done

qui fait effectivement que je sors uniquement si je clique sur Arreter

je me suis aussi posé la question de savoir si ce n'est pas la version de yad (0.27.0) fournie dans le dépot qui est en cause
(yad 0.27.0 date du 01-08-2014  alors que yad en est rendu à 0.38.0 au 11-12-2016) plus de deux ans de retard !!!

Dernière modification par ar barzh paour (Le 17/12/2016, à 14:02)


PC          : B760M DS3H DDR4,  12th Gen Intel(R) Core(TM) i3-12100, RAM DDR4 8GiB -2400 Ubuntu 22.04, 22.04, 23.04
Portable1 : Intel(R) Core(TM)2 Duo CPU     T6570  @ 2.10GHz RAM 4GiB DDR2 667 MHz Ubuntu 23.04 ( en voyage )
Portable2 : T5750  @ 2.00GHz RAM 1GiB DDR2 667 Mhz Ubuntu 20.04 ( batterie HS )
stourm a ran war bep tachenn (Angela Duval) ( Je combats sur tous les fronts )

Hors ligne

#4 Le 17/12/2016, à 20:43

ar barzh paour

Re : YAD et son résultat

j'ai trouvé une solution mais elle ne me satisfait qu'à moitié
j'utilise le bouton qui a le code de sortie 0 pour valider les saisies et les options
je peux donc récupérer les valeurs des différents champs
valeurs que je peux réutiliser dans le traitement lorsque je clique sur un autre bouton

if [[ $action == 0 ]]
then
	trad1=$(echo "$res" | awk -F"|" '{print $4}')
	trad2=$(echo "$res" | awk -F"|" '{print $5}')
	affichage_permanent_traduction=$(echo "$res" | awk -F"|" '{print $8}')
	afficher="$affichage_permanent_traduction"
fi
if [[ $action == 3 ]] #suivant
then
	((Nb++))
        <autre traitement>
fi

PC          : B760M DS3H DDR4,  12th Gen Intel(R) Core(TM) i3-12100, RAM DDR4 8GiB -2400 Ubuntu 22.04, 22.04, 23.04
Portable1 : Intel(R) Core(TM)2 Duo CPU     T6570  @ 2.10GHz RAM 4GiB DDR2 667 MHz Ubuntu 23.04 ( en voyage )
Portable2 : T5750  @ 2.00GHz RAM 1GiB DDR2 667 Mhz Ubuntu 20.04 ( batterie HS )
stourm a ran war bep tachenn (Angela Duval) ( Je combats sur tous les fronts )

Hors ligne