Appeller une fonction en gtkdialog ??

marchepas(){} -  
 marchepas(){} -
Bonjour,
voila, mon probleme est que je n'arrive pas à appeler une fonction en gtkdialog ; )

j'ai un script de la forme :

#!/bin/bash

ma_func () {

func_danslafonc () {

instruction

}

fun_dslafunc () {

instruction

}

}

export MAIN_DIALOG='
<window window_position="1" resizable="false" title="Montitre" icon-name="Monicone">
<vbox>
<button>
<input file>Monimage</input>
<label>Monlabel</label>
<action>ma_func &</action>
<action type="exit">restart</action>
</button>
</vbox>
</window>
'
gtkdialog --program=MAIN_DIALOG

mais lorsque je le lançe a partir du terminal, j'obtiens cette erreur :

sh: ma_func: not found
EXIT="restart"

il semble que je ne soit pas le seul à avoir ce probleme, mais certains pretendent avoir trouver une solution pour y palier, si quelqu'un a une idee qui me permettrait d'appeler n'importe quelle fonctions dans une balise <action> d'un bouton, ce serait VACHEMENT GENTIL de sa part de me la faire connaitre ; )

Merci d'avance !

8 réponses

  1. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    Salut,

    Et si tu débutais ton script par :

    #! /usr/bin/gtkdialog -e

    Plutôt que par "#! /bin/bash", non ?

    Source ;-))
    0
  2. marchepas(){}
     
    La coloration syntaxique de mon editeur a disparue et le script ne se lançe plus du tout, j'ai remis l'ex shebang en attendant ; ) dommage ça aurait été bien
    si tu as d'autres idées je prends !
    ; )
    0
    1. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
       
      Mets les deux :

      #! /bin/bash
      #! /usr/bin/gtkdialog -e
      0
  3. marchepas(){}
     
    le script se lançe bien, la gui principale est là, mais l'interpreteur ne trouve toujours pas la fonction du début ; )
    0
    1. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
       
      T'as essayé sans le "&" ?
      0
  4. marchepas(){}
     
    Ben justement, quand j'enleve le & , la fonction n'est plus exécutée en arriere plan et la gui principale devient noire et ne repond plus ; )
    0
    1. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
       
      Alors il serait peut être temps et intéressant de nous mettre le contenu des fonctions, non ?
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. marchepas(){}
     
    HAHAHA, ne pas rire :

    #!/bin/bash
    ma_func () {

    perl /opt/scripts/perl/noproco.pl

    other_func () {

    directory='zenity --file-selection'

    }

    last_func () {

    if test -e $directory

    then

    ma_func

    else

    echo "Doesn't exist !"

    fi

    }

    other_func
    last_func

    }

    export MAIN_DIALOG='
    <window window_position="1" resizable="false" title="OpenPNG" icon-name="gtk-info">
    <vbox>
    <button>
    <input file>/mon/image</input>
    <label>Ouvrir maintenant :</label>
    <action>ma_func &</action>
    <action type="exit">restart</action>
    </button>
    </vbox>
    </window>
    '
    gtkdialog --program=MAIN_DIALOG
    0
    1. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
       
      Et si tu appelles "ma_func" toute seule sans gtkdialog, ça passe ?
      0
  7. marchepas(){}
     
    oui, ça passe, sinon, je viens de tomber sur "zenitor" qui est ecrit en gtkdialog/bash par hizoka ( cf Ubuntu.fr ) et à l'interieur du script il arrive a appeller des fonctions a partir de gtkdialog, mais je n'y comprends pas grand chose : ça donne ;

    function Largeur_gtk()
    {
    cat << EOF
    <frame Largeur de la fenêtre :>
    <hbox>
    <entry tooltip-text=" Indiquez une largeur maximale en px pour la fenêtre. ">
    <variable>width</variable>
    </entry>
    <text>
    <label>px</label>
    </text>
    </hbox>
    </frame>
    EOF
    }

    Pour une fonction qui est appelée par un export plus loin, tu peus m'eclairer ? ; )
    0
  8. marchepas(){}
     
    Bon, je dois y aller, je cherche de mon coté, sinon, merci beaucoup du coup de main, peut être à demain !
    0