Ajouter un bouton a yad
xunil2003
Messages postés
766
Date d'inscription
Statut
Membre
Dernière intervention
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour,
Avec yad j'ai besoin d'ajouter un bouton Aide, je n'y arrive pas
fonction_test(){
VALEUR=$1
echo "VALEUR : $VALEUR"
case $VALEUR in
1)
echo "1"
;;
*)
echo "Erreur"
;;
esac
}
export -f fonction_test
retour=$(yad --form --width=900 --height=300 --field=:LBL --field="Archive":RO --field="Nom image disque : '" --field="Taille archive" --field="Unité de mesure":CB --field="Point de montage":CDIR --field="Systeme de fichier":CB --field="Aide":btn --field="sudo":CHK "Veuillez completer les champs" "$ARCHIVE" "$NOM_IMAGE_DISQUE_ISO" "$taille_archive" "$TABLEAU_UNITE_DE_MESURE2" "$POINT_DE_MONTAGE" "$TABLEAU_SYSTEME_DE_FICHIER" "sh -c 'fonction_test 1'" "TRUE") #"${TABLEAU_UNITE_DE_MESURE[@]}!"
if [ "$?" != "0" ] ; then
echo "Annuler par l'utilisateur $USER"
exit 0
fi
echo "$retour"
Bash me retour :
sh: 1: fonction_test: not found
Merci d'avance pour vos avis et conseilsLinux / Firefox 136.0
A voir également:
- Ajouter un bouton a yad
- Ajouter à l'écran d'accueil iphone - Guide
- Diagnostic bouton photo - Accueil - Outils
- Impossible d'ajouter un ami sur facebook - Guide
- Ajouter un compte whatsapp - Guide
- Ajouter un profil netflix - Guide
2 réponses
Bonjour
Selon cette page, tu dois coupler ton bouton avec une commande shell. Si tu souhaites faire appel à une fonction shell, il faut l'exporter et l'appeler au travers de bash -c.
Comme le montre cet exemple,
function about_dlg() {
yad --about \
--window-icon=gtk-about \
--image=gtk-preferences \
--authors="Ingemar Karlsson" \
--license="GPL3" \
--comments="iDesklnk is a simple iDesk desktop icon Creator/Editor." \
--copyright="Copyright (c) 2023 Ingemar Karlsson" \
--pversion="$PVERSION" \
--pname="iDesklnk" \
--button="Close!gtk-close":1
}
export -f about_dlg
RESULT=$(yad --form \
--window-icon=gtk-preferences \
--align=right \
--width=150 \
--mouse \
--title="iDesk icon configurator" \
--button="About!gtk-about":"bash -c about_dlg" \
)
ret=$?
Bonne chance
Bonjour !
L'IA de Bobot est là pour vous aider !
Il semble que votre fonction shell n'est pas reconnue au moment de l'exécution de votre script. C'est probablement dû à l'environment dans lequel la fonction est appelée. L'option 'sh -c' crée un nouveau shell sans importer les fonctions du shell actuel.
Une solution serait d'inclure le corps de la fonction directement dans la commande appelée par le bouton, ou de déplacer la définition de la fonction dans un fichier séparé que vous sourcez dans votre script principal.
Voici comment vous pourriez utiliser la première méthode :
```
retour=$(yad --form --width=900 --height=300 --field=:LBL --field="Archive":RO --field="Nom image disque : '" --field="Taille archive" \
--field="Unité de mesure":CB --field="Point de montage":CDIR --field="Systeme de fichier":CB --field="Aide":btn --field="sudo":CHK \
"Veuillez completer les champs" "$ARCHIVE" "$NOM_IMAGE_DISQUE_ISO" "$taille_archive" "$TABLEAU_UNITE_DE_MESURE2" "$POINT_DE_MONTAGE" \
"$TABLEAU_SYSTEME_DE_FICHIER" "sh -c 'VALEUR=$1; echo "VALEUR : $VALEUR"; case $VALEUR in 1) echo "1" ;; *) echo "Erreur" ;; esac' 1" "TRUE")
```
Sinon, vous pouvez définir votre fonction dans un autre script shell, par exemple `functions.sh`, et l'inclure dans votre script principal en utilisant `source functions.sh` ou `. ./functions.sh` avant d'appeler votre fonction.
L'IA de Bobot est là pour vous aider !
Il semble que votre fonction shell n'est pas reconnue au moment de l'exécution de votre script. C'est probablement dû à l'environment dans lequel la fonction est appelée. L'option 'sh -c' crée un nouveau shell sans importer les fonctions du shell actuel.
Une solution serait d'inclure le corps de la fonction directement dans la commande appelée par le bouton, ou de déplacer la définition de la fonction dans un fichier séparé que vous sourcez dans votre script principal.
Voici comment vous pourriez utiliser la première méthode :
```
retour=$(yad --form --width=900 --height=300 --field=:LBL --field="Archive":RO --field="Nom image disque : '" --field="Taille archive" \
--field="Unité de mesure":CB --field="Point de montage":CDIR --field="Systeme de fichier":CB --field="Aide":btn --field="sudo":CHK \
"Veuillez completer les champs" "$ARCHIVE" "$NOM_IMAGE_DISQUE_ISO" "$taille_archive" "$TABLEAU_UNITE_DE_MESURE2" "$POINT_DE_MONTAGE" \
"$TABLEAU_SYSTEME_DE_FICHIER" "sh -c 'VALEUR=$1; echo "VALEUR : $VALEUR"; case $VALEUR in 1) echo "1" ;; *) echo "Erreur" ;; esac' 1" "TRUE")
```
Sinon, vous pouvez définir votre fonction dans un autre script shell, par exemple `functions.sh`, et l'inclure dans votre script principal en utilisant `source functions.sh` ou `. ./functions.sh` avant d'appeler votre fonction.