#1 Le 19/01/2011, à 19:34
- compte supprimé
[Résolu] Zenity checklist avec plusieurs colonnes à cocher ???
Bonjour,
J'aimerais savoir si il est possible d'utiliser Zenity avec la possibilité d'avoir plusieurs colonnes à cocher.
Dans l'exemple de ci-dessus j'aimerai avoir la possibilté de choisir soit un Vélo Blanc soit un Avion Noir...
Mais il faudrait avoir la possiblité de cocher la colonne "choix 2"
#!/bin/bash
reponse=`zenity --list --checklist \
--text "Choisire une couleur et un véhicule" \
--column="Choix 1" \
--column="Couleur" \
--column="Choix 2" \
--column="Véhicule" \
--print-column="2,4" \
FALSAE Noir . Vélo FALSE Blanc . Voiture FALSE Gris . Avion \
`
zenity --info \
--text "Vous avez choisi $reponse"
exit
et pour finir j'aimerais faire une fenêtre info qui me donnerai le résultat des 2 choix.
Merci de votre aide.
Dernière modification par Orion79 (Le 27/01/2011, à 19:52)
#2 Le 23/01/2011, à 08:32
- Hizoka
Re : [Résolu] Zenity checklist avec plusieurs colonnes à cocher ???
d'après ce que je sais cela ne l'est pas...
à toi de le faire en 2 fenêtres qui se suivent, genre :
1 er choix : couleur
2eme choix : quel véhicule voulait vous en $couleur : véhicule
ou multiplier les choix d'une liste, proposant chaque véhicule avec les 3 couleurs...
véhicule 1 couleur 1
véhicule 1 couleur 2
...
perso j'utilise un peu glade, mais je ne pense pas qu'il le permettrait aussi... (sauf en faisant une fenêtre avec 2 listes ...)
KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github
Hors ligne
#3 Le 23/01/2011, à 11:01
- compte supprimé
Re : [Résolu] Zenity checklist avec plusieurs colonnes à cocher ???
Merci Hizoka pour l'info
Je début la programmation (bash) mais avec Glade , là c'est carrément nouveau et c'est un autre langage.
Donc pour le moment je vais continuer avec Zénity qui est très facile à prendre en main.
Peut-être qu'un jour il aura la possibilité d'avoir plusieurs colonnes à cocher...
Mon but est d'avoir un minimum de fenêtre afin d'avoir une vision global de ce que je veux faire.
Dernière modification par Orion79 (Le 27/01/2011, à 22:41)
#4 Le 24/01/2011, à 12:01
- compte supprimé
Re : [Résolu] Zenity checklist avec plusieurs colonnes à cocher ???
Sinon aurait-il une possibilité de traiter chaque valeur séparément ???
Quand je coche la première ligne Zenity va retenir "vélo" et "noir".
Ce que j'aimerai faire c'est une fenêtre info qui dit : vous avez choisi vélo.
et
une autre fenêtre info qui dit : vous avez choisi noir.
#!/bin/bash
zenity --list --checklist \
--text "Choisire une couleur et un véhicule" \
--column="" \
--column="Couleur" \
--column="Véhicule" \
--print-column="2,3" \
FALSAE Noir Vélo FALSE Blanc Voiture FALSE Gris Avion \
#5 Le 24/01/2011, à 12:37
- compte supprimé
Re : [Résolu] Zenity checklist avec plusieurs colonnes à cocher ???
J'ai trouvé une solution qui fonctionne :
#!/bin/bash
choice="$(zenity --list --checklist \
--text "Choisire une couleur et un véhicule" \
--column="" \
--column="Couleur" \
--column="Véhicule" \
--print-column="2,3" \
FALSAE Noir Vélo FALSE Blanc Voiture FALSE Gris Avion )"
case $choice in
*"Vélo"* )
zenity --info --text "Vous avez choisi vélo."
;;
esac
case $choice in
*"Noir"* )
zenity --info --text "Vous avez choisi noir."
;;
esac
NB Il faut compléter le script pour les autres options c'est juste un principe.
Dernière modification par Orion79 (Le 24/01/2011, à 20:46)
#6 Le 24/01/2011, à 12:54
- Hizoka
Re : [Résolu] Zenity checklist avec plusieurs colonnes à cocher ???
oui c'est tout à fait ça
KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github
Hors ligne
#7 Le 24/01/2011, à 18:01
- Levi59
Re : [Résolu] Zenity checklist avec plusieurs colonnes à cocher ???
Par contre case...esac n'a pas besoin d'être répété.
case $choice in
*"Vélo"* )
zenity --info --text "Vous avez choisi vélo."
;;
*"Noir"* )
zenity --info --text "Vous avez choisi noir."
;;
esac
Hors ligne
#8 Le 24/01/2011, à 19:05
- compte supprimé
Re : [Résolu] Zenity checklist avec plusieurs colonnes à cocher ???
Par contre case...esac n'a pas besoin d'être répété.
case $choice in *"Vélo"* ) zenity --info --text "Vous avez choisi vélo." ;; *"Noir"* ) zenity --info --text "Vous avez choisi noir." ;; esac
Désolé mais ça n'affiche que la première fenêtre. ("Vous avez choisi vélo.")
Je doit avouer que j'avais aussi pensé à cette solution et qu' elle était plus logique.
A mon avis une fois qu'on n' a fais notre choix dans la première fenêtre par exemple " Vélo et Noir" le script mémorise la valeur "Vélo | Noir", et lorsqu'on fais un case "simple" il s'arrête à la première valeur qu'il est vrai c'est à dire "Vélo" et passe à esac. La solution proposer plus haut (post #5) et une "sorte de boucle".
Dernière modification par Orion79 (Le 24/01/2011, à 20:47)
#9 Le 24/01/2011, à 20:53
- Levi59
Re : [Résolu] Zenity checklist avec plusieurs colonnes à cocher ???
Exact, j'avais pas compris dans ce sens...
Alors ceci doit être plus efficace:
zenity --list --checklist --separator="\n" \
--text "Choisir une couleur et un véhicule" \
--column="" \
--column="Couleur" \
--column="Véhicule" \
--print-column="2,3" FALSE Noir Vélo FALSE Blanc Voiture FALSE Gris Avion > >(
while read ; do
[ "${REPLY}" == "Vélo" ] && zenity --info --text "Vous avez choisi vélo."
[ "${REPLY}" == "Noir" ] && zenity --info --text "Vous avez choisi noir."
done )
Dernière modification par Levi59 (Le 24/01/2011, à 20:53)
Hors ligne
#10 Le 24/01/2011, à 23:03
- compte supprimé
Re : [Résolu] Zenity checklist avec plusieurs colonnes à cocher ???
Pas mal ce code ! C'est là qu'on vois la différence entre un novice est un pro du bash .
Merci pour l'info, du coup ça fais de la matière à étudier.
#11 Le 24/01/2011, à 23:28
- Levi59
Re : [Résolu] Zenity checklist avec plusieurs colonnes à cocher ???
Pas pro! Juste bien inspiré... Les vrais pro du secteur sont Totor et ehmicky (Désolé si j'en oublie)
Hors ligne
#12 Le 25/01/2011, à 06:15
- Hizoka
Re : [Résolu] Zenity checklist avec plusieurs colonnes à cocher ???
Donc levis59 propose :
zenity --list --checklist --separator="\n" \
--text "Choisir une couleur et un véhicule" \
--column="" \
--column="Couleur" \
--column="Véhicule" \
--print-column="2,3" FALSE Noir Vélo FALSE Blanc Voiture FALSE Gris Avion > >(
while read ; do
[ "${REPLY}" == "Vélo" ] && zenity --info --text "Vous avez choisi vélo."
[ "${REPLY}" == "Voiture" ] && zenity --info --text "Vous avez choisi Voiture."
[ "${REPLY}" == "Avion" ] && zenity --info --text "Vous avez choisi Avion."
[ "${REPLY}" == "Noir" ] && zenity --info --text "Vous avez choisi noir."
[ "${REPLY}" == "Blanc" ] && zenity --info --text "Vous avez choisi Blanc."
[ "${REPLY}" == "Gris" ] && zenity --info --text "Vous avez choisi Gris."
done )
faire une boucle while juste pour 2 infos...
de plus j'ai simplifié car il y a 9 possibilités dans les checks (3 couleurs pour 3 vehicules)
pas sur que ce soit mieux que ce que propose Orion79 :
choice="$(zenity --list --checklist \
--text "Choisire une couleur et un véhicule" \
--column="" \
--column="Couleur" \
--column="Véhicule" \
--print-column="2,3" \
FALSE Noir Vélo FALSE Blanc Voiture FALSE Gris Avion )"
case $choice in
*"Vélo"* ) zenity --info --text "Vous avez choisi vélo." ;;
*"Voiture"* ) zenity --info --text "Vous avez choisi Voiture." ;;
*"Avion"* ) zenity --info --text "Vous avez choisi Avion." ;;
esac
case $choice in
*"Noir"* ) zenity --info --text "Vous avez choisi noir." ;;
*"Blanc"* ) zenity --info --text "Vous avez choisi Blanc." ;;
*"Gris"* ) zenity --info --text "Vous avez choisi Gris." ;;
esac
ou encore :
couleur=${choice%%|*}
locomotion=${choice##*|}
zenity --info --text "Vous avez choisi le moyen de locomotion : ${locomotion} de couleur : ${couleur}."
ca evite du code inutile, pas de boucle...
Dernière modification par Hizoka (Le 25/01/2011, à 07:17)
KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github
Hors ligne
#13 Le 25/01/2011, à 11:44
- compte supprimé
Re : [Résolu] Zenity checklist avec plusieurs colonnes à cocher ???
J'ai juste une question concernant le code ci-dessous
couleur=${choice%%|*}
locomotion=${choice##*|}
zenity --info --text "Vous avez choisi le moyen de locomotion : ${locomotion} de couleur : ${couleur}."
que veut dire %%|*} et ##*|}.
#14 Le 25/01/2011, à 11:50
- Levi59
Re : [Résolu] Zenity checklist avec plusieurs colonnes à cocher ???
C'est une substitution de variable (Corrigez moi si je me trompe car je ne suis pas sûr du nom) et ici ça signifie:
Avec Var="bla|blu|blo"
${Var%%|*} => "bla" Soit supprimer tout a partir du premier "|" (séparateur compris)
${Var##*|} => "blo" Soit supprimer tout jusqu'au dernier "|" (séparateur compris)
Tu peux aussi écrire :
${Var%|*} => "bla|blu" Soit supprimer tout a partir du dernier "|" (séparateur compris)
${Var#*|} => "blu|blo" Soit supprimer tout jusqu'au premier "|" (séparateur compris)
Dernière modification par Levi59 (Le 25/01/2011, à 11:53)
Hors ligne
#15 Le 25/01/2011, à 12:47
- compte supprimé
Re : [Résolu] Zenity checklist avec plusieurs colonnes à cocher ???
Merci Levi59 pour l'info.
Sinon j'ai rajouter une option si aucun choix n'est fait :
#!/bin/bash
choice="$(zenity --list --checklist \
--text "Choisire une couleur et un véhicule" \
--column="" \
--column="Couleur" \
--column="Véhicule" \
--print-column="2,3" \
FALSE Noir Vélo FALSE Blanc Voiture FALSE Gris Avion )"
if [ -z $choice ]
then
zenity --info --text "Vous n'avez fais aucun choix !!!"
else
couleur=${choice%%|*}
locomotion=${choice##*|}
zenity --info --text "Vous avez choisi le moyen de locomotion : ${locomotion} de couleur : ${couleur}."
fi
#16 Le 25/01/2011, à 13:59
- Hizoka
Re : [Résolu] Zenity checklist avec plusieurs colonnes à cocher ???
va faire un tour sur : http://abs.traduc.org/abs-fr/
il commence à avoir de l'age mais est vraiment pas mal.
KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github
Hors ligne
#17 Le 25/01/2011, à 18:01
- compte supprimé
Re : [Résolu] Zenity checklist avec plusieurs colonnes à cocher ???
Merci Hizoka pour le lien fort intéressant.
Mais je suis en train de suivre ma formation à bash sur ce cours : Introduction à Bash
Sinon il serait bien qu'on enrichisse la documentation pour d'autre qui raconterait ce genre de problème ???
Dernière modification par Orion79 (Le 29/01/2011, à 17:13)
#18 Le 25/01/2011, à 20:12
- Hizoka
Re : [Résolu] Zenity checklist avec plusieurs colonnes à cocher ???
il faudrait fondre cette page avec : http://doc.ubuntu-fr.org/aide_zenity
mais je vois pas quoi dire d'autre...
KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github
Hors ligne
#19 Le 27/01/2011, à 12:05
- compte supprimé
Re : [Résolu] Zenity checklist avec plusieurs colonnes à cocher ???
Il serait bien de compléter la documentation avec des exemples de scripts et des exemples avec l'utilisation de Zenity.
Comme par exemple les scripts de ce topic. Car même avec une recherche sur d'autre cite la documentation de Zenity manque d'astuce.
Dernière modification par Orion79 (Le 27/01/2011, à 12:07)
#20 Le 27/01/2011, à 12:07
- Hizoka
Re : [Résolu] Zenity checklist avec plusieurs colonnes à cocher ???
les exemples, ce n'est pas trop le role de la doc...
apres faire un topic dans lequel tu regroupes des codes pourquoi pas, mais y a-t-il vraiment un interet vu qu'il n'y a pas de limite...
et zenitor ne suffit-il pas ?
KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github
Hors ligne
#21 Le 27/01/2011, à 12:11
- compte supprimé
Re : [Résolu] Zenity checklist avec plusieurs colonnes à cocher ???
Zenitor est un super outil.
Il faut dire que j'ai juste le niveau de débutant , donc à moi de progresser en programmation.
Dernière modification par Orion79 (Le 27/01/2011, à 22:47)
#22 Le 27/01/2011, à 12:28
- Hizoka
Re : [Résolu] Zenity checklist avec plusieurs colonnes à cocher ???
ravi que ça te plaise
hesite pas à me faire des retours si tu rencontres des problemes ou si tu as des idées d'amélioration.
KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github
Hors ligne
#23 Le 27/01/2011, à 12:39
- compte supprimé
Re : [Résolu] Zenity checklist avec plusieurs colonnes à cocher ???
Comme amélioration il serait justement bien d'avoir la possibilité d'avoir une fenêtre --checklist avec la possibité de plusieurs colonnes à cocher ce qui permettrai par exemple de faire un "programme" de conversion audio en choisissant le format, le débit... et tous ça avec une seule fenêtre.
Mais je suis conscient que c'est facile à dire mais plus compliqué à faire.
Mais comme tu l'as dit au post #2 c'est le genre de chose à faire avec Glade.
Dernière modification par Orion79 (Le 27/01/2011, à 15:54)
#24 Le 27/01/2011, à 16:04
- Hizoka
Re : [Résolu] Zenity checklist avec plusieurs colonnes à cocher ???
mon logiciel ne peut absolument pas faire ça... car zenity ne le permet pas...
Mais comme signaler ce n'est possible qu'avec GTKDialog (non maintenu) ou Glade (voir glade2script dans ma signature) qui le permet.
KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github
Hors ligne
#25 Le 27/01/2011, à 16:35
- Hizoka
Re : [Résolu] Zenity checklist avec plusieurs colonnes à cocher ???
par contre je viens de decouvrir yad : http://www.webupd8.org/2010/12/yad-zeni … splay.html
et il semblerait qu'il puisse être tres puissant...
KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github
Hors ligne