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.

#976 Le 05/03/2011, à 19:42

AnsuzPeorth

Re : [glade2script-GTK2] Interface graphique pour script bash ou autre.

Re,
Ton script est vraiment conçu pour tourner avec zenity, CAD des boites que tu lance et récup la sortie et agit selon. Glade2script peut faire ça, soit exactement comme zenity (statique avec script associé qui renvois juste les valeurs voulus en sortie), soit en ayant qd même une interaction avec le script, mais on se fait chier justement à cause des sous-process et environnement à un instant T.

Tu devrais essayer de revoir l'algo de ton script, avec les particularités de glade2script (disons sans les particularités de zenity, car l'algo pour glade2script ressemble plus à de la prog avec interface graphique que des popup à la zenity le long d'un script).


les variables chargées dans avant_click_user seront-elles vues dans les fonctions appelées par la boucle ?

Non, toutes fonctions/commandes lancé en arrière plan est un sous-processus (processus enfant), donc il fait sa sauce dans son coin, le père n'as aucun retour venant de lui (à part son code de sortie).
C'est là que la commande ITER devient intéressante.

function maitre
{
modifA
}
function modifA
{
 a=1
}
a=0
maitre
echo $a #=>1
bouclefin
function maitre
{
modifA
}
function modifA
{
 a=1
}
a=0
maitre &
echo $a #=>0 car modifA est lancé dans le sous-process maitre
bouclefin
function maitre
{
ITER@@modifA
}
function modifA
{
 a=1
}
a=0
maitre &
echo $a #=>1 car modifA est lancé depuis la boucle, donc dans l'environnement du père
bouclefin

Dans ce dernier cas, la variable a ne sera pas modifiée dans le sous-process maitre.

Si on lance maitre en arrière plan, c'est pour pouvoir quitter depuis tes fonctions (alors que d'habitudes, on quitte depuis une action user, donc on est déjà en attente dans la boucle de fin).

On se fait chier ici avec ITER, juste parce que ton script est prévu avec zenity !


Interface graphique pour bash, python ou autre: glade2script
Support Tchat: http://chat.jabberfr.org/muckl_int/inde … ade2script  (Hors ligne)

Hors ligne

#977 Le 05/03/2011, à 20:50

Hizoka

Re : [glade2script-GTK2] Interface graphique pour script bash ou autre.

echo 'SET@terminal.set_scrollback_lines(50)'
echo 'SET@_terminal.set_scrollback_lines(50)'

ne marche pas

exemple de plantage avec sudo :

DEBUG=>: in thread py TERM@@SEND@@cd "/home/hizoka/.config/launchbash/sources"\n
DEBUG=>: in thread py TERM@@SEND@@sudo pbuilder build "screencastor_0.9.2-0ppa4~lucid.dsc"\n
DEBUG=>: in thread py TERM@@SEND@@touch "/home/hizoka/.config/launchbash/sleep"\n

la commande touch n'est pas effectué si la commande pbuilder me demande mon mdp, si le mdp est en mémoire, pas de soucis, la commande passe.
du coup, mon script reste coincé sur la boucle et de la boucle ne sert à rien...

EDIT : j'arrive à contourner le soucis avec :

while [[ $(pgrep pbuilder) ]]; do sleep 0.2; done

y aurait moyen de récupérer le pid de glade2script ?
histoire d'ameliorer la commande en :

while [[ $(pstree ${PID} | grep 'pbuilder') ]]; do sleep 0.2; done

ainsi je suis sur que ca ne concernerait que le pbuilder lancé par mon script

tiens quand on utilise :

DEBUG=>: in thread py SET@_sources_select.append_text('screencastor_0.9.2-0ppa4~maverick')

ca renvoie egalement :

DEBUG=>: in thread py DEBUG=> in bash NOT GET _sources_select None

il faudrait bloquer None dans le python afin d'eviter d'avoir 50 instructions inutiles...

Dernière modification par Hizoka (Le 05/03/2011, à 21:22)


KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github

Hors ligne

#978 Le 06/03/2011, à 00:49

AnsuzPeorth

Re : [glade2script-GTK2] Interface graphique pour script bash ou autre.

ne marche pas

Chez moi pas de soucis !!! avec:

echo "SET@terminal.set_scrollback_lines(20)"

y aurait moyen de récupérer le pid de glade2script ?

En regardant pstree, on voit qu'avec le pid du go_.sh, on a tous les enfants, il te suffit d'envoyer en argument au script le pid du go_sh. Je peux très bien foutre le pid de glade2script dans une variable, mais si tu veux, le pid du terminal est déjà dispo:

echo 'GET@terminal_PID'

il faudrait bloquer None dans le python afin d'eviter d'avoir 50 instructions inutiles...

C'est sur un combo avec le callback on_combo ?
Si tu veux corriger ton script, dans la fonction on_combo

#
    def on_combo(self,widget,event=None,arg=None):
        nom=widget.get_name()
        valeur=widget.get_active_text()
        if valeur is not None:
            self.send_data('%s %s' % (nom, valeur) )

Interface graphique pour bash, python ou autre: glade2script
Support Tchat: http://chat.jabberfr.org/muckl_int/inde … ade2script  (Hors ligne)

Hors ligne

#979 Le 06/03/2011, à 01:11

Hizoka

Re : [glade2script-GTK2] Interface graphique pour script bash ou autre.

echo "SET@terminal.set_scrollback_lines(20)"

ca passe maintenant... j'ai chié quelque part...

En regardant pstree, on voit qu'avec le pid du go_.sh, on a tous les enfants, il te suffit d'envoyer en argument au script le pid du go_sh.

ouais j'ai fait un PID_go=$$ et export $PID_go

echo 'GET@terminal_PID'

ouais mais du coup il faut passer par un iter smile
si on pouvait avoir en variables direct : PID_glade2script et PID_terminal

C'est sur un combo avec le callback on_combo ?

niquel ! merci.
Si tu fait cette modif pour la prochaine version, penses à preciser que None ne peut être utilisé.

Dernière modification par Hizoka (Le 06/03/2011, à 01:14)


KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github

Hors ligne

#980 Le 06/03/2011, à 01:20

AnsuzPeorth

Re : [glade2script-GTK2] Interface graphique pour script bash ou autre.

ouais mais du coup il faut passer par un iter

ou tu lance la commande juste avant la boucle la variable sera dispo pour la suite.

si on pouvait avoir en variables direct : PID_glade2script et PID_terminal

terminal_PID l'est déjà, je pourrais ajouter celui de glad2script.

Par contre l'envoyer par défaut, je sais pas, il suffit d'appeler soit même au début.

Si tu fait cette modif pour la prochaine version, penses à preciser que None ne peut être utilisé.

Pas de soucis avec ça, les variables sont typés, donc il y None et 'None', ça posera pas de problème.


Interface graphique pour bash, python ou autre: glade2script
Support Tchat: http://chat.jabberfr.org/muckl_int/inde … ade2script  (Hors ligne)

Hors ligne

#981 Le 06/03/2011, à 01:25

Hizoka

Re : [glade2script-GTK2] Interface graphique pour script bash ou autre.

ou tu lance la commande juste avant la boucle la variable sera dispo pour la suite.
=> avant la boucle :

while read ligne
do
    if [[ ${ligne} =~ GET@ ]]
    then
        eval ${ligne#*@}
        echo "DEBUG => in boucle bash :" ${ligne#*@}
    else
        echo "DEBUG=> in bash NOT GET" ${ligne}
        ${ligne}
    fi 
done < <(while true
do
    read entree < ${FIFO}
    [[ ${entree}  == QuitNow ]] && break
    echo ${entree} 
done)

et :

echo "$terminal_PID" > test"

dans une fonction mais ca ne me renvoie rien...

Pas de soucis avec ça, les variables sont typés, donc il y None et 'None', ça posera pas de problème.

cool ça smile


KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github

Hors ligne

#982 Le 06/03/2011, à 01:29

AnsuzPeorth

Re : [glade2script-GTK2] Interface graphique pour script bash ou autre.

Tu l'appelle avant la boucle:

echo 'GET@terminal_PID'
BoucleDeFin

Comme ça elle sera chargée pour la suite.

EDIT: Si tu veux le pid de glade2script dispo comme terminal_PID
line =~ 517

self.glade2script_PID = os.getpid()

Dernière modification par AnsuzPeorth (Le 06/03/2011, à 01:34)


Interface graphique pour bash, python ou autre: glade2script
Support Tchat: http://chat.jabberfr.org/muckl_int/inde … ade2script  (Hors ligne)

Hors ligne

#983 Le 06/03/2011, à 01:59

Hizoka

Re : [glade2script-GTK2] Interface graphique pour script bash ou autre.

c'est ça qu'il faut faire ?

function renvoie { echo "$terminal_PID" > test; }
echo 'GET@terminal_PID'
while read ligne
do
    if [[ ${ligne} =~ GET@ ]]
    then
        eval ${ligne#*@}
        echo "DEBUG => in boucle bash :" ${ligne#*@}
    else
        echo "DEBUG=> in bash NOT GET" ${ligne}
        ${ligne}
    fi 
done < <(while true
do
    read entree < ${FIFO}
    [[ ${entree}  == QuitNow ]] && break
    echo ${entree} 
done)

la fonction renvoie me donne un fichier vide


KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github

Hors ligne

#984 Le 06/03/2011, à 02:13

AnsuzPeorth

Re : [glade2script-GTK2] Interface graphique pour script bash ou autre.

Pas chez moi !!!

button1()
{
echo "le pid $terminal_PID"
echo 'EXIT@@'
}
echo 'GET@terminal_PID'
##########################################################################################
while read ligne; do
    if [[ "$ligne" =~ GET@ ]]; then
....

...
DEBUG=>: in thread py GET@terminal_PID
DEBUG => FIFO write: GET@terminal_PID="30171"
DEBUG=>: in thread py DEBUG => in boucle bash : terminal_PID="30171"
DEBUG => FIFO write: button1 clicked
DEBUG=>: in thread py DEBUG=> in bash NOT GET button1 clicked
DEBUG=>: in thread py le pid 30171
DEBUG=>: in thread py EXIT@@
DEBUG => FIFO write: QuitNow

Peut être une histoire de tempo, place un sleep avant de demander le pid, en arrière plan. La réponse arrive avant que le script soit branché sur le fifo; Ton pc est trop puissant smile, ou le mien une vieille bouse ...C'est plutot ça d'ailleurs smile


Interface graphique pour bash, python ou autre: glade2script
Support Tchat: http://chat.jabberfr.org/muckl_int/inde … ade2script  (Hors ligne)

Hors ligne

#985 Le 06/03/2011, à 03:00

Hizoka

Re : [glade2script-GTK2] Interface graphique pour script bash ou autre.

en fait ca marche mais uniquement si je lance la fonction manuellement et non depuis mon script... hmm

m'enfin bon, pour mon utilité c'est ok.

ainsi je verifie avec :

while [[ $(pstree ${terminal_PID} | egrep "sudo") ]]; do sleep 0.2; done
while [[ $(pstree ${terminal_PID} | egrep "pbuilder|sudo") ]]; do sleep 0.2; done
while [[ $(pstree ${terminal_PID} | egrep "debuild") ]]; do sleep 0.2; done

apres je dis ca, je dis rien mais on pourrait peut être envoyer les variables de base tongue


KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github

Hors ligne

#986 Le 06/03/2011, à 03:07

Hizoka

Re : [glade2script-GTK2] Interface graphique pour script bash ou autre.

la je regarde pour qu'un clic droit sur un bouton l'enfonce aussi...

car un bouton :

 - clicked : on_clicked
 - bouton_press_event : clic_droit

la fonction :

function _bouton
{
if [[ $1 == clic_droit ]]
then
    echo 'SET@_bouton.activate()'
elif [[ ${1} == clicked ]]
then
    echo 'EXIT@@'
else
    echo 'EXIT@@SAVE'
fi
}

ca renvoie :

_bouton clic_droit
_bouton clicked

alors que activate n'a pas de callback
avec my_widget comme activate, ca ne passe pas

Dernière modification par Hizoka (Le 06/03/2011, à 03:17)


KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github

Hors ligne

#987 Le 06/03/2011, à 03:18

AnsuzPeorth

Re : [glade2script-GTK2] Interface graphique pour script bash ou autre.

en fait ca marche mais uniquement si je lance la fonction manuellement et non depuis mon script...

Tu dois surement l'appeler dans l'environnement non chargé de la variable (mes derniers post, j'ai expliqué en long en large et en travers le principe de l'environnement pour YannUbuntu, je peux pas faire mieux,  jette y un oeil si tu as un doute wink).

apres je dis ca, je dis rien mais on pourrait peut être envoyer les variables de base

Le problème, si tu fais un traitement avant la boucle, les variables seront envoyées, mais comme tu n'est pas encore connecté au fifo, il n'y aura rien de chargé. Comme c'est une utilisation assez spécifique, c'est pas plus dur de lancer ces commandes d'entrée ( ou sur la premiere action de l'user, car de toute façons, les pid seront utiles pour tuer les process, donc à la fin du script).

la je regarde pour qu'un clic droit sur un bouton l'enfonce aussi...

Qu'est ce que tu vas nous faire encore  lol
J'ajoute pas de commandes hein smile (mais il y a déjà ce qu'il faut de toutes façons)


Interface graphique pour bash, python ou autre: glade2script
Support Tchat: http://chat.jabberfr.org/muckl_int/inde … ade2script  (Hors ligne)

Hors ligne

#988 Le 06/03/2011, à 03:20

Hizoka

Re : [glade2script-GTK2] Interface graphique pour script bash ou autre.

j'ai edité mon post tongue


KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github

Hors ligne

#989 Le 06/03/2011, à 03:22

AnsuzPeorth

Re : [glade2script-GTK2] Interface graphique pour script bash ou autre.

alors que activate n'a pas de callback

Mais clicked a un callback, on_clicked.
Comme tu activate le bouton, c'est comme si tu cliqué, donc le callback est appelé.
Pose un flag

Dernière modification par AnsuzPeorth (Le 06/03/2011, à 03:23)


Interface graphique pour bash, python ou autre: glade2script
Support Tchat: http://chat.jabberfr.org/muckl_int/inde … ade2script  (Hors ligne)

Hors ligne

#990 Le 06/03/2011, à 03:24

Hizoka

Re : [glade2script-GTK2] Interface graphique pour script bash ou autre.

et hop :

if [[ ${1} == clic_droit ]]
then
    reload=yes
    echo 'SET@_quit.activate()'
else
    [[ ${reload:-no} == yes ]] &&echo 'EXIT@@SAVE' || echo 'EXIT@@'
fi

encore une victoire de canard smile


KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github

Hors ligne

#991 Le 06/03/2011, à 03:28

Hizoka

Re : [glade2script-GTK2] Interface graphique pour script bash ou autre.

j'ai jeter un oeil au script de yann, mais c'est trop le bazar pour moi...

il faudrait refaire le script...


KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github

Hors ligne

#992 Le 06/03/2011, à 03:36

AnsuzPeorth

Re : [glade2script-GTK2] Interface graphique pour script bash ou autre.

Hizoka a écrit :

j'ai jeter un oeil au script de yann, mais c'est trop le bazar pour moi...

il faudrait refaire le script...

C'est ce que je lui ai dit dans mes posts précédents ! On peut le porter, mais c'est le bazard avec ITER, les sous-process & co (quoique c'est formateur wink)
Son script a été écrit pour zenity, CAD des popup le long du script.
Avec glade2script, on doit voir l'algo differement. Ca ressemble plus a un programme python/gtk par exemple. Avec l'interface utilisateur a centre du programme, pour communiquer entre l'user et le programme, pas juste comme des boites 'Attention, oui/non'.

Mais je pense que ça vaut le coup de s'y mettre, toutes prétentions mise à part, j'aurais bien aimé avoir un truc pareil à mes début en bash ! (quoique je me serais jamais mis à python, ce qui aurait été vraiment dommage, parce que python ..... Faut s'y mettre, c'est pas très dur (en utilisation basique) et vraiment puissant.)

C'est pour qd le python chez toi smile ?

Dernière modification par AnsuzPeorth (Le 06/03/2011, à 03:37)


Interface graphique pour bash, python ou autre: glade2script
Support Tchat: http://chat.jabberfr.org/muckl_int/inde … ade2script  (Hors ligne)

Hors ligne

#993 Le 06/03/2011, à 06:38

YannUbuntu

Re : [glade2script-GTK2] Interface graphique pour script bash ou autre.

Rooohh , mon script c'est le bazar ?  je vais y faire un peu de ménage alors wink

Comme dit précédemment, oui mon interface est de type "pop-up"/lineaire (dans le pire des cas l'utilisateur verra seulement 1 pulse, 3 pop-up, 1 pulse puis 1 autre pop-up), donc je pourrais utiliser glade2script en statique, mais ca m'obligerait a passer en argument une tonne de variables&tableaux.
Donc j'ai choisi l'utilisation "dynamique", ca marche très bien, même sans ITER. Le seul truc pas très propre, c'est le traitement avant la boucle : pour l'instant j'utilise la technique de mon post #965 (if true; then sortie; else suite_du_script). C'est pourquoi je cherche une technique me permettant de lancer la boucle, puis ensuite le traitement initial avec pulse.
Par exemple, serait-il possible de faire ceci :

#fonctions appellees par glade
fonction presence_pulse
{
if [ traitement initial pas encore fait]; then traitement_initial; fermeture du pulse et affichage du dialogue suivant;
else sleep 1  ##pour eviter de prendre trop de ressources avec cette boucle infinie le temps du pulse
fi
}
affichage du pulse
boucle

Ca voudrait dire que la fonction presence_pulse serait appelee infiniment durant toute la presence du pulse,

Qu'en pensez-vous ?


à consulter/améliorer: Guide du Débutant, Logiciels, Ecole, Travail, Maison

Hors ligne

#994 Le 06/03/2011, à 11:51

Wild_Child_87

Re : [glade2script-GTK2] Interface graphique pour script bash ou autre.

Salut, je rencontre un bug avec les spinbutton.

Au lancement du logiciel j'envoie :

echo "SET@_spinbutton1.set_text('150')"
echo "SET@_spinbutton2.set_text('200')"

mais les valeurs ne s'affichent pas dans les spinbutton (pas de message d'erreur), et si je renvoi ces 2 commandes plus tard avec un bouton par exemple, pas de problème, les valeurs s'affichent bien.

J'ai essayer de doubler les envois au lancement du logiciel, mais ça ne marche pas plus.

Hors ligne

#995 Le 06/03/2011, à 13:42

AnsuzPeorth

Re : [glade2script-GTK2] Interface graphique pour script bash ou autre.

Wild_Child_87 a écrit :

mais les valeurs ne s'affichent pas dans les spinbutton (pas de message d'erreur), et si je renvoi ces 2 commandes plus tard avec un bouton par exemple, pas de problème, les valeurs s'affichent bien.

Etrange comme comportement !
Par contre, tu utilise set_text qui n'est pas une méthode du spinbtton, mais de son ancêtre, l'entry. Dans la doc pygtk c'est indiqué et tjrs bon à regarder:

Ancestry

+-- gobject.GObject
  +-- gtk.Object
    +-- gtk.Widget
      +-- gtk.Entry (implements gtk.Editable, gtk.CellEditable)
        +-- gtk.SpinButton

Donc, les méthodes et signaux des ancêtres sont valables pour l'enfant.
Pour indiquer une valeur dans le spinbutton, il faut utiliser set_value(150), une de ses méthode.

Yann a écrit :

Rooohh , mon script c'est le bazar ?  je vais y faire un peu de ménage alors

Si je peux me permettre d'autres remarques, tu devrait déplier un peu plus ton code, des instructions/condition uniligne on perd en visibilité.
Aussi, tu utilise souvent la forme

echo $var | grep machin
echo $var | cut

Totor s'époumone depuis des mois/années pour nous inculquer les bonnes manières, si il voit ça, il aura l'impression d'avoir pisé dans un violon smile
Il est préférable pour ne pas avoir des pipes inutiles:

grep machin <<< $var
cut <<< $var

Une dernière chose, les [ doivent être doublé pour éviter les erreurs, c'est la norme aujourd'hui, bien qu'on trouve l'ancienne façon dans les vieux tutos.

Ca voudrait dire que la fonction presence_pulse serait appelee infiniment durant toute la presence du pulse,

Qu'en pensez-vous ?

Franchement, j'arrive plus à te suivre smile

Ton script, il faut koi ?
Il cherche les os installé et demande à l'user si il veut les supprimer ?
Pourquoi pas lancer d'entrée l'interface, avec un treeview, tes boutons (affiché ou non) et une progressbarr.
Bien sur tu peux griser la tree si tu veux, tant que la recherche n'est pas fini.
Une fois le tree chargé, l'user choisi ses options dans le gui et clic sur ok, si besoin de popup de confirmation, tu le lance a ce moment là, donc ce sera le bouton du popup qui dira si oui ou non il faut faire l'opération. Ca aura l'avantage que toutes tes variables seront chargées dans l'environnement donc disponible de partout (pas de sous-process).
Sert toi de la progressbarr pour remonter les informations, ou une zone de texte, ou encore une statusbarr.

Mais en opérant comme ça, tu aura le GUI lancé, donc en attente sur la boucle et tu lance tes traitements en arrière plan  en faisant remonter les infos régulièrement dans ton GUI.(ou tu peux aussi avoir un bouton scanOS, ce qui fait que c'est l'user qui lancera la fonction, donc pas de soucis d'arriere plan & co)

Enfin, c'est toi qui voit, c'est ton script, ta façon de faire smile


Interface graphique pour bash, python ou autre: glade2script
Support Tchat: http://chat.jabberfr.org/muckl_int/inde … ade2script  (Hors ligne)

Hors ligne

#996 Le 06/03/2011, à 14:42

Wild_Child_87

Re : [glade2script-GTK2] Interface graphique pour script bash ou autre.

Merci, ça marche mieux avec set_value effectivement smile

Hors ligne

#997 Le 06/03/2011, à 16:06

YannUbuntu

Re : [glade2script-GTK2] Interface graphique pour script bash ou autre.

Merci pour les "bonnes pratiques bash", si tu en vois d'autres n'hésite pas ! smile

tu peux aussi avoir un bouton scanOS, ce qui fait que c'est l'user qui lancera la fonction

Oui, c'est exactement ce qui pose soucis (car je ne veux pas de ce bouton) : la boucle a besoin d'un signal de l'user pour lancer une fonction. C'est pourquoi je me demandais si vous ne connaissiez pas un signal qui ne serait pas envoyé par l'user ?
par exemple un signal envoyé constamment rien que par la presence d'un element glade ? (presence de la fenetre pulse que j'aurais lancé avant d'entrer dans la boucle par exemple)

EDIT: au fait j'ai nettoyé le code afin que vous compreniez mieux les opérations effectuées avant l'entrée dans la boucle -> les fichiers sont sur la page SourceForge du projet

Dernière modification par YannUbuntu (Le 06/03/2011, à 16:10)


à consulter/améliorer: Guide du Débutant, Logiciels, Ecole, Travail, Maison

Hors ligne

#998 Le 06/03/2011, à 17:45

Wild_Child_87

Re : [glade2script-GTK2] Interface graphique pour script bash ou autre.

Nouveau problème (peut-être en rapport avec Yann ?) big_smile

Je veux sortir de l'interface en récupérant la variable 'window1.get_size', pas de soucis jusque là (merci la doc). Deux manières de quitter l'interface:
   1) Bouton Quitter
   2) La croix
Tous deux relier à la même fonction (donc pas de gtk_widget_destroy_save pour la croix) avec EXIT@@SAVE.

   1) Pas de problème je récupère bien ma variable avec les bonnes dimensions
   2) Problèmes je récupère bien ma variable, mais avec des mauvaises dimensions (200,200 à chaque fois), et parfois, le script ne quitte pas et bloque sur :

DEBUG => FIFO write: quitter clicked
DEBUG=>: in thread py DEBUG=> in bash NOT GET quitter clicked
DEBUG=>: in thread py EXIT@@SAVE
DEBUG => FIFO write: QuitNow

Dons j'essaye de mettre gtk_widget_destroy_save pour quitter avec la croix.
Résultat: je récupère bien ma variable avec les bonnes dimensions, sauf que mon script bloque à tous les coups, impossible de quitter.

DEBUG => FIFO write: QuitNow
window1_get_size="(401, 95)"
EXIT="yes"

Pour résumer:
EXIT@@SAVE + Bouton quitter = Ok
EXIT@@SAVE + Croix = Mauvaise dimension + script qui bloque parfois
gtk_widget_destroy_save + Croix = Bonne dimension + script qui bloque

EDIT: Lorsque je ne lance pas ma boucle  en arrière plan (fonction qui tourne en fond pour surveiller le serveur mpd) , le gtk_widget_destroy_save fonctionne.

Dernière modification par Wild_Child_87 (Le 06/03/2011, à 18:01)

Hors ligne

#999 Le 06/03/2011, à 18:19

AnsuzPeorth

Re : [glade2script-GTK2] Interface graphique pour script bash ou autre.

@Wild_Child_87
Un comportement étrange ?
Que ce soit via gtk_widget_destroy_save ou EXIT@@SAVE, c'est la même fonction qui est appelée.
Ce qui me semble étrange c'est le plantage ? Que la dimension ne soit pas bonne avec gtk_widget_destroy_save , ca m'étonne à moitié, car tu demande les dimensions qd la fenêtre est destroy; donc plus moyen de récup la taille (bien que la taille  soit differente entre le 2 commandes, !!!???)

Par contre, aucun plantage chez moi ! N'oublie pas que l'option -r c'est pour l'utilisation statique ! L'erreur vient sûrement d'ailleurs. (je pense à ça, ca pourrait peut être intéressant de pouvoir ajouter des variables depuis le script en sortie de glade2script, en utilisation statique bien sur ?)

YannUbuntu a écrit :

par exemple un signal envoyé constamment rien que par la presence d'un element glade ? (presence de la fenetre pulse que j'aurais lancé avant d'entrer dans la boucle par exemple)

Désolé, mais je vois où tu veux en venir smile
Si tu lance ta fonction de pulse, tu le sais bien vu que c'est toi qui gère ça ! Pourquoi avoir un signal ?

Je pense que j'ai de la difficulté à comprendre ou me faire comprendre. L'idéal serait que tu fasses un petit exemple (glade+script), de ce que tu veux, ou là où tu coinces.
Comme on dit, un petit dessin vaut mieux qu'un long discours wink


Interface graphique pour bash, python ou autre: glade2script
Support Tchat: http://chat.jabberfr.org/muckl_int/inde … ade2script  (Hors ligne)

Hors ligne

#1000 Le 06/03/2011, à 18:24

AnsuzPeorth

Re : [glade2script-GTK2] Interface graphique pour script bash ou autre.

EDIT: Lorsque je ne lance pas ma boucle  en arrière plan (fonction qui tourne en fond pour surveiller le serveur mpd) , le gtk_widget_destroy_save fonctionne.

EDIT: j'avais mal lu.
Et cette boucle est lancée depuis un sous-process ? Ou elle occupe le script (donc plus de comm entre glade et script).

Dernière modification par AnsuzPeorth (Le 06/03/2011, à 18:26)


Interface graphique pour bash, python ou autre: glade2script
Support Tchat: http://chat.jabberfr.org/muckl_int/inde … ade2script  (Hors ligne)

Hors ligne