#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
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:
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.
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ù ?
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
EDIT: Ok c'est bon
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.
J'ai vider tous mes signaux sur le widget, en laissant juste "on_clicked" sur "enter-notify-event", et j'ai ce retour
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
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.
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
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
J'utilisais on _clicked, parce que my_callback était déjà pris par un autre signal, mais je savais pas pour enter_notify_event
Hors ligne
#1084 Le 14/03/2011, à 17:39
- AnsuzPeorth
Re : [glade2script-GTK2] Interface graphique pour script bash ou autre.
J'utilisais on _clicked, parce que my_callback était déjà pris par un autre signal, mais je savais pas pour enter_notify_event
Et la DOC
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
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.
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 , mais bon ça fonction, donc je vais pas pleurer G2S c'est trop good
++
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
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 !
Par deux fois, c'est mon système entier qui à planter
En conclusion, GEO@@GET est votre ami
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.
Il doit y avoir une façon de faire plus élégante
Plus court aussi
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.
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 sadEn 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.
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
comment effacer le texte tapé dans une comboboxentry ?
Ben set_text('') sur l'entry du combo !
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
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
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
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
Hors ligne