Contenu | Rechercher | Menus

Annonce

Ubuntu 16.04 LTS
Commandez vos DVD et clés USB Ubuntu-fr !

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.

#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"?


Ubuntu 16.04 64 bits (depuis juillet 2016)
divers versions Ubuntu et Studio 14.04 LTS 64 bits
(HS décembre 2016 ) Intel(R) Core(TM)2 Duo CPU     E7400  @ 2.80GHz 2Go de RAM
(Janvier 2017 ) : Intel(R) Pentium(R) Dual  CPU  E2180  @ 2.00GHz 2Go de RAM 800 MHz

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)

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)


Ubuntu 16.04 64 bits (depuis juillet 2016)
divers versions Ubuntu et Studio 14.04 LTS 64 bits
(HS décembre 2016 ) Intel(R) Core(TM)2 Duo CPU     E7400  @ 2.80GHz 2Go de RAM
(Janvier 2017 ) : Intel(R) Pentium(R) Dual  CPU  E2180  @ 2.00GHz 2Go de RAM 800 MHz

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

Ubuntu 16.04 64 bits (depuis juillet 2016)
divers versions Ubuntu et Studio 14.04 LTS 64 bits
(HS décembre 2016 ) Intel(R) Core(TM)2 Duo CPU     E7400  @ 2.80GHz 2Go de RAM
(Janvier 2017 ) : Intel(R) Pentium(R) Dual  CPU  E2180  @ 2.00GHz 2Go de RAM 800 MHz

Hors ligne