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 19/01/2011, à 19:34

compte supprimé

[Résolu] Zenity checklist avec plusieurs colonnes à cocher ???

Bonjour, smile

J'aimerais savoir si il est possible d'utiliser Zenity avec la possibilité d'avoir plusieurs colonnes à cocher.
capturechoisirdesobjets.png
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... roll

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

capturechoisirdesobjets.png

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 smile


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

Levi59 a écrit :

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.") hmm
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 . cool

Merci pour l'info, du coup ça fais de la matière à étudier. roll

#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. wink

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 smile

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. roll

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