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.

#1076 Le 14/03/2011, à 16:38

AnsuzPeorth

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

@CKDevelop
J'aurais jamais du ajouter un terminal ...:)

Sinon, je pense que ton _hbox.show() fonctionne, mais tu passes direct sur le hide (pause un sleep pour vérifier).

Le terminal s'exécute dans son coin, tu peux juste y envoyer du text/commande, mais tu peux rien avoir en retour.

Pour avoir le comportement voulu (CAD progress lors de la commande), il faudra lancer ta commande dans ton script (surtout que tu utilise gksudo, donc pas de saisie de MDP dans le term) et envoyer son stdout dans le terminal (WRITE, comme pour un textview ou autre), tu pourras agir sur la progress depuis ton script. Mais dans ce cas, autant utiliser un textview ou label !


@Wild_Child_87
C'est le treeview qui est buggé, déjà le listview l'était (il fallait ajouter 1 au path lors du drop after).

Je suppose que c'est assez urgent ? Je vais te donner la marche à suivre pour rectifier, je ne vais pas faire une MAJ pour si peux smile

Donc, =~ line 800, fonction drag_data_received
commenter les lignes (4 lignes):

#if DEBUG: print '%s drop@%s@%s' % (treeview.get ......
#self.send_data( '%s drop@%s@%s' % (treeview.get_na.......

A la fin de la fonction, en respectant l'indentation (tab)
juste après:

#
        if context.action == gtk.gdk.ACTION_MOVE:
            context.finish(True, True, etime)

ajouter:

#
        def check_path(model, path, iter, don):
            if list(model[iter]) == don[0]:
                don[1].append(path)
        lref = []
        modele.foreach(check_path, (donnees_eval, lref) )
        chemin = lref[0]
        if DEBUG: print '%s drop@%s@%s' % (treeview.get_name(), ':'.join( map(str,chemin) ), donnees)
        self.send_data( '%s drop@%s@%s' % (treeview.get_name(), ':'.join( map(str,chemin) ), donnees) )

C'est du dépannage, je ferais plus propre pour la prochaine MAJ, mais ca restera pareil dans le principe.
Le truc, c'est que le treeview sera entièrement listé pour chaque drop (pas cool), je vais peut être ajouter une option pour des/activer cette possibilité.

Dernière modification par AnsuzPeorth (Le 14/03/2011, à 16:41)


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

Hors ligne

#1077 Le 14/03/2011, à 17:00

CKDevelop

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

oui le

echo 'SET@_hbox3.show()'

s'affiche, mais en faite je me suis mal exprimé.
Le problème viens du:

echo 'TERM@@SEND@@gksudo "apt-get upgrade -y --force-yes"\n' | while read ligne; do
        #on peut traiter le flux en direct pour envoyer infos dans progress
        echo 'SET@_progress.pulse()'
    done

car il ne se stop pas à la boucle, il continue et passe donc directement à

echo 'SET@_progress.set_fraction(1)' #progress à 100%
echo 'SET@_progress.set_text("Mise à jour terminé")'
echo 'SET@_hbox3.hide()'

en faite j'ai mis

update

le temps du développement, mais en réalité la commande est

echo 'TERM@@SEND@@gksudo "apt-get upgrade -y --force-yes"\n' | while read ligne; do

mais j'ai remarqué que lorsque qu'il y a une demande d'acceptation de licence, ça bloque la MAJ apt-get upgrade  si on ne valide pas la licence. et donc je voulais afficher le terminal le temps de cette commande, ensuite cacher le terminal et continuer avec mes autres traitements.

a moins que quelqu'un me sorte une commande qui accepte directement les licences

voilà ++

Dernière modification par CKDevelop (Le 14/03/2011, à 17:00)


Home -> Debian Jessie & Home server -> Debian Wheezy
Office -> Ubuntu 14.04 & Office server -> Ubuntu 12.04
Embedded -> Raspbian / Debian Wheezy

Hors ligne

#1078 Le 14/03/2011, à 17:11

Wild_Child_87

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

Nikel, merci bien !

Je sais pas si tu as vu:

Wild-Child-87 a écrit :

Autre chose, j'ai des retours de ce type quand j'utilise enter-notify-event

<gtk.gdk.Event at 0x29add78: GDK_ENTER_NOTIFY x=98,00, y=37,00, mode=GDK_CROSSING_NORMAL> None

EDIT: Question subsidiaire, est-ce qu'on peut mettre plusieurs user data à la suite, si oui, comment on les sépare (exemple toggle_visible _bouton1,_bouton2) ?

Hors ligne

#1079 Le 14/03/2011, à 17:13

AnsuzPeorth

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

echo 'TERM@@SEND@@gksudo "apt-get upgrade -y --force-yes"\n' | while read ligne; do
        #on peut traiter le flux en direct pour envoyer infos dans progress
        echo 'SET@_progress.pulse()'
    done

Cela n'aura aucun effets, tu envois dans la boucle juste le echo !!!

Il faudra lancer le pulsate en arrière plan tant que la commande s'execute dans le term (se baser sur le pid ou autre, voir les posts précédents avec Hizoka, il y a plusieurs possibilités proposées)


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

Hors ligne

#1080 Le 14/03/2011, à 17:20

AnsuzPeorth

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

Wild-Child-87 a écrit :

Autre chose, j'ai des retours de ce type quand j'utilise enter-notify-event

<gtk.gdk.Event at 0x29add78: GDK_ENTER_NOTIFY x=98,00, y=37,00, mode=GDK_CROSSING_NORMAL> None

J'ai pas ça chez moi !!! Tu n'as pas mis un autre callback en plus sur le signal enter-notify-event ? C'est un print qui doit de trouver dans le script, mais où ?

Wild_Child_87 a écrit :

EDIT: Question subsidiaire, est-ce qu'on peut mettre plusieurs user data à la suite, si oui, comment on les sépare (exemple toggle_visible _bouton1,_bouton2) ?

Non, il faut ajouter un callback par user-data. Pas le choix !

EDIT: Tu dois avoir un on_clicked qle part qui fait ça !
line 405, commente le print, un oubli !

Dernière modification par AnsuzPeorth (Le 14/03/2011, à 17:24)


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

Hors ligne

#1081 Le 14/03/2011, à 17:29

Wild_Child_87

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

J'ai vider tous mes signaux sur le widget, en laissant juste "on_clicked" sur "enter-notify-event", et j'ai ce retour smile

EDIT: Ok c'est bon smile

Dernière modification par Wild_Child_87 (Le 14/03/2011, à 17:31)

Hors ligne

#1082 Le 14/03/2011, à 17:32

AnsuzPeorth

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

Wild_Child_87 a écrit :

J'ai vider tous mes signaux sur le widget, en laissant juste "on_clicked" sur "enter-notify-event", et j'ai ce retour smile

Ben pourquoi utiliser le callback on_clicked ???? Utilise enter_notify_event, tu aura en retour dans ta fonction
enter_notify_event.
Sinon, il y a aussi le callback my_callback wink

Dernière modification par AnsuzPeorth (Le 14/03/2011, à 17:32)


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

Hors ligne

#1083 Le 14/03/2011, à 17:34

Wild_Child_87

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

AnsuzPeorth a écrit :
Wild_Child_87 a écrit :

J'ai vider tous mes signaux sur le widget, en laissant juste "on_clicked" sur "enter-notify-event", et j'ai ce retour smile

Ben pourquoi utiliser le callback on_clicked ???? Utilise enter_notify_event, tu aura en retour dans ta fonction
enter_notify_event.
Sinon, il y a aussi le callback my_callback wink

J'utilisais on _clicked, parce que my_callback était déjà pris par un autre signal, mais je savais pas pour enter_notify_event  sad

Hors ligne

#1084 Le 14/03/2011, à 17:39

AnsuzPeorth

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

Wild_Child_87 a écrit :

J'utilisais on _clicked, parce que my_callback était déjà pris par un autre signal, mais je savais pas pour enter_notify_event  sad

Et la DOC  big_smile


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

Hors ligne

#1085 Le 14/03/2011, à 17:47

Wild_Child_87

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

J'avoue big_smile

Tiens autre chose, question débile du jour, ça change quoi que soit pour glade2script si au lieu de faire

echo "SET@_nom_profil.set_text('toto')"
echo "SET@_hote_profil.set_text('toto')"
echo "SET@_port_profil.set_text('toto')"
echo "SET@_mdp_profil.set_text('toto')"
echo "SET@_musique.set_current_folder('toto')"

Je fais:

echo "SET@_nom_profil.set_text('toto')
SET@_hote_profil.set_text('toto')
SET@_port_profil.set_text('toto')
SET@_port_profil.set_text('toto')
SET@_mdp_profil.set_text('toto')
SET@_musique.set_current_folder('toto')"

J'ai l'impression que l'affichage est plus instantané, c'est juste une impression ou ça peut faire un semblant de différence, notamment si on a beaucoup de commande à envoyé ?

Hors ligne

#1086 Le 14/03/2011, à 17:52

AnsuzPeorth

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

J'ai l'impression que l'affichage est plus instantané, c'est juste une impression ou ça peut faire un semblant de différence, notamment si on a beaucoup de commande à envoyé ?

La difference c'est que tu n'utilise qu'un seul echo, donc un peu plus rapide. Pour glade2script, ca ne change rien (peut être petit bug possible dû à la vitesse d'execution, mais logiquement j'ai pris mes précautions à ce sujet)

Tu sais qu'il y a la commande MULTI si tu dois envoyer le même texte dans differents widget de même type (même commande pygtk).


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

Hors ligne

#1087 Le 14/03/2011, à 17:54

Wild_Child_87

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

Oui je sais, le toto était là pour l'exemple. smile

Hors ligne

#1088 Le 14/03/2011, à 18:52

CKDevelop

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

re

bon j'ai réussi à faire ce que je voulais.

function _appliquer()
{
    echo "SET@_progress.set_text('Mise à jour de la liste des dépôts...')"
    gksudo -m "$msgAdmin" "apt-get update -y --force-yes" | while read ligne; do
        #on peut traiter le flux en direct pour envoyer infos dans progress
        echo 'SET@_progress.pulse()'
    done
    sleep 0.2
    echo "SET@_progress.set_text('Mise à jour du système...')"
    echo 'SET@_hbox3.show()'
    sleep 0.2
    echo 'TERM@@SEND@@gksudo "apt-get upgrade -y --force-yes"\n'
    sleep 0.2
    ps -e | grep -e 'gksudo'
    while [ "$?" -eq 0 ]; do
        ps -e | grep -e 'apt-get'
        while [ "$?" -eq 0 ]; do
            #on peut traiter le flux en direct pour envoyer infos dans progress
            echo 'SET@_progress.pulse()'
            ps -e | grep -e 'apt-get'
        done
        ps -e | grep -e 'gksudo'
    done
    sleep 0.2
    echo 'SET@_progress.set_fraction(1)' #progress à 100%
    echo 'SET@_progress.set_text("Mise à jour terminé")'
    echo 'SET@_hbox3.hide()'

}

Il doit y avoir une façon de faire plus élégante hmm, mais bon ça fonction, donc je vais pas pleurer smile G2S c'est trop good big_smile

++


Home -> Debian Jessie & Home server -> Debian Wheezy
Office -> Ubuntu 14.04 & Office server -> Ubuntu 12.04
Embedded -> Raspbian / Debian Wheezy

Hors ligne

#1089 Le 14/03/2011, à 19:22

AnsuzPeorth

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

Il doit y avoir une façon de faire plus élégante

Plus court aussi smile
La commande pstree est très pratique pour ça. Lorsque le terminal récupère le prompt, la commande pstree affiche bash, simplement.

Le PID du terminal peut être obtenu. Au démarrage du script, lance la commande pour que le pid soit déjà dans l'environnement.

echo 'GET@terminal_PID'

ensuite dans ta fonction:

echo 'TERM@@SEND@@gksudo "apt-get upgrade -y --force-yes"\n'
 while [[ "$(pstree ${terminal_PID})" != "bash" ]]; do echo progressbar.pulse; sleep 1; done

C'est juste pour l'exemple, tu peux faire différent, regarde les options de pstree.

Attention par contre, la commande GET demande de passer par ITER si on se trouve dans le même environnement.

Dernière modification par AnsuzPeorth (Le 14/03/2011, à 19:24)


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

Hors ligne

#1090 Le 15/03/2011, à 11:00

Wild_Child_87

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

Bonjour, j'ai voulu tester la commande

echo "GET@window1.get_position()"

Plein d'erreur du genre

DEBUG=>: in thread py GET@window1.get_position()
python: ../../src/xcb_io.c :183 : process_responses:  L'assertion « !(req && current_request && !(((long) (req->sequence) - (long) (current_request)) <= 0)) » a échoué.

ou autre

glade2script.py: Fatal IO error 11 (Ressource temporairement non disponible) on X server :0.0.

Une autre mettant en cause gtk.

Et le logiciel quitte. Ça fonctionne 2 fois sur 3 à peu près, mais la troisième ! lol
Par deux fois, c'est mon système entier qui à planter sad

En conclusion, GEO@@GET est votre ami smile

D'ailleurs quelle est la variable que l'on récupère avec GEO@@GET ? J'ai essayé $window1, mais rien. (dans la doc: Returns :  geo@width, height, X, Y, )

Dernière modification par Wild_Child_87 (Le 15/03/2011, à 12:26)

Hors ligne

#1091 Le 16/03/2011, à 19:31

CKDevelop

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

AnsuzPeorth a écrit :
Il doit y avoir une façon de faire plus élégante

Plus court aussi smile
La commande pstree est très pratique pour ça. Lorsque le terminal récupère le prompt, la commande pstree affiche bash, simplement.

Le PID du terminal peut être obtenu. Au démarrage du script, lance la commande pour que le pid soit déjà dans l'environnement.

echo 'GET@terminal_PID'

ensuite dans ta fonction:

echo 'TERM@@SEND@@gksudo "apt-get upgrade -y --force-yes"\n'
 while [[ "$(pstree ${terminal_PID})" != "bash" ]]; do echo progressbar.pulse; sleep 1; done

C'est juste pour l'exemple, tu peux faire différent, regarde les options de pstree.

Attention par contre, la commande GET demande de passer par ITER si on se trouve dans le même environnement.


very good l'astuce du PID, ça fonctionne, mais je ne peu l'utiliser qu'un fois. dans mon cas ça roule en tous, merci pour les retours, et désolé, mais ke voulais prendre de temps de bien comprendre..

++


Home -> Debian Jessie & Home server -> Debian Wheezy
Office -> Ubuntu 14.04 & Office server -> Ubuntu 12.04
Embedded -> Raspbian / Debian Wheezy

Hors ligne

#1092 Le 17/03/2011, à 14:21

Hizoka

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

un truc un peu con la...

comment effacer le texte tapé dans une comboboxentry ?


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

En ligne

#1093 Le 18/03/2011, à 01:27

Hizoka

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

il faudrait aussi une vérification du genre :
si glade2script envoie "DEBUG=>: in thread py" 10 fois d'affiler on kill...


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

En ligne

#1094 Le 18/03/2011, à 06:53

AnsuzPeorth

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

Wild a écrit :

Et le logiciel quitte. Ça fonctionne 2 fois sur 3 à peu près, mais la troisième ! lol
Par deux fois, c'est mon système entier qui à planter sad

En conclusion, GEO@@GET est votre ami smile

D'ailleurs quelle est la variable que l'on récupère avec GEO@@GET ? J'ai essayé $window1, mais rien. (dans la doc: Returns :  geo@width, height, X, Y, )

C'est étonnant, j'utilise cette commande dans GEO@@GET !
Par contre GEO@@GET ne charge pas de variable, il appelle juste la fonction correspondante. Il faudrait que j'envois également une variable dans l'environnement, je l'ajoute pour la prochaine MAJ.

CKDevelp a écrit :

very good l'astuce du PID, ça fonctionne, mais je ne peu l'utiliser qu'un fois

C'est à dire ?
Lorsque tu envois une nouvelle commande, le pid change, mais la variable correspondante aussi wink

Hizoka a écrit :

comment effacer le texte tapé dans une comboboxentry ?

Ben set_text('') sur l'entry du combo !

Hizoka a écrit :

il faudrait aussi une vérification du genre :
si glade2script envoie "DEBUG=>: in thread py" 10 fois d'affiler on kill...

C'est ce que je fais déjà, si + 10 fois un echo vide venant du script, je sors.

if self.n_break==10 : break

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

Hors ligne

#1095 Le 18/03/2011, à 07:43

Hizoka

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

echo "SET@_sources_ppa.set_text('')"

marche pas...déjà essayé...

C'est ce que je fais déjà, si + 10 fois un echo vide venant du script, je sors.

etrange car là, j'ai eu quelques soucis de bug comme ça (lié à une erreur de ma part dans le code) qui bloque tout...

il manque FINDDEL dans la doc


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

En ligne

#1096 Le 18/03/2011, à 08:31

AnsuzPeorth

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

marche pas...déjà essayé...

Il faut bien indiquer l'entry de la comboboxentry, pas la combobox.

etrange car là, j'ai eu quelques soucis de bug comme ça (lié à une erreur de ma part dans le code) qui bloque tout...

Oui, ca bloque tout car comme je l'ai dit, je sors de glade2script, mais ton script lui peut rester en vie ! Arfff, foutu sous-process smile

PS: fait vraiment chier d'être deconnecter comme ça tout le temps ....!


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

Hors ligne

#1097 Le 18/03/2011, à 15:59

Hizoka

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

Il faut bien indiquer l'entry de la comboboxentry, pas la combobox.

tu fais comment ?

Oui, ca bloque tout car comme je l'ai dit, je sors de glade2script, mais ton script lui peut rester en vie ! Arfff, foutu sous-process

Ouais il faudrait un kill des sous processeus aussi...


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

En ligne

#1098 Le 18/03/2011, à 19:35

Hizoka

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

y a moyen de foutre une icone dans un combobox ou combo entry ?
ou un truc dans le meme genre qui aurait texte + img.

en sachant qu'un truc sur une ligne serait parfait (pas de tree qui)


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

En ligne

#1099 Le 18/03/2011, à 19:50

AnsuzPeorth

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

tu fais comment ?

Ben la comboboxentry a une entry, dans glade tu la référence (_), et tu y aura accès comme une autre entry.

Ouais il faudrait un kill des sous processeus aussi...

Tu y tiens a ce kill smile
Mais je pense pas que ce soit le role de glade2script de s'occuper du script, il est juste un outils, si le script est mal codé !!!!
J'ai déjà mis cette sécurité de 10 entrées vides.

J'ajouterai peut être le kill, juste pour le dévelloppement, une option à ajouter ?


y a moyen de foutre une icone dans un combobox ou combo entry ?
ou un truc dans le meme genre qui aurait texte + img.

en sachant qu'un truc sur une ligne serait parfait (pas de tree qui)

Ben à part en mettre dans l'entry de la comboboxentry ....
Sinon un treeview smile
Tu peux en faire un popup sous la souris ! Sinon amuse toi a show/hide un label avec icone .. je sais pas !

Il faudrait que j'ajoute la possibilité de foutre un popdown de combo en treeview, mais ca va encore alourdir le truc ...


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

Hors ligne

#1100 Le 18/03/2011, à 20:18

Wild_Child_87

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

Le comboboxentry est un seul widget, il n' y a pas un widget combo et un widget entry, donc on peut pas gérer l'entry du combo comme un vrai widget entry (peut pas mettre d'icone, ni vider l'entry). Ou j'ai manquer un truc big_smile

Hors ligne