Hello tous,
Je met à jour un champ text ( phonenumber = gtk.Entry() ) , ensuite
j'attend 5 secondes (Voir code)
Le problème : Le champ est mis a jour après le time.sleep(5) et non
avant ???
Code:
self.phonenumber.set_text("Envoi en cours ... Wait")
self.phonenumber.connect("activate", self.enter_callback,
self.phonenumber)
self.phonenumber.select_region(0, len(self.phonenumber.get_text()))
time.sleep(5)
Hello tous,
Je met à jour un champ text ( phonenumber = gtk.Entry() ) , ensuite
j'attend 5 secondes (Voir code)
Le problème : Le champ est mis a jour après le time.sleep(5) et non
avant ???
Hello tous,
Je met à jour un champ text ( phonenumber = gtk.Entry() ) , ensuite
j'attend 5 secondes (Voir code)
Le problème : Le champ est mis a jour après le time.sleep(5) et non
avant ???
Code:
self.phonenumber.set_text("Envoi en cours ... Wait")
self.phonenumber.connect("activate", self.enter_callback,
self.phonenumber)
self.phonenumber.select_region(0, len(self.phonenumber.get_text()))
time.sleep(5)
Hello tous,
Je met à jour un champ text ( phonenumber = gtk.Entry() ) , ensuite
j'attend 5 secondes (Voir code)
Le problème : Le champ est mis a jour après le time.sleep(5) et non
avant ???
Hello tous,
Je met à jour un champ text ( phonenumber = gtk.Entry() ) , ensuite
j'attend 5 secondes (Voir code)
Le problème : Le champ est mis a jour après le time.sleep(5) et non
avant ???
Code:
self.phonenumber.set_text("Envoi en cours ... Wait")
self.phonenumber.connect("activate", self.enter_callback,
self.phonenumber)
self.phonenumber.select_region(0, len(self.phonenumber.get_text()))
time.sleep(5)
Hello tous,
Je met à jour un champ text ( phonenumber = gtk.Entry() ) , ensuite
j'attend 5 secondes (Voir code)
Le problème : Le champ est mis a jour après le time.sleep(5) et non
avant ???
Hello tous,
Je met à jour un champ text ( phonenumber = gtk.Entry() ) , ensuite
j'attend 5 secondes (Voir code)
Le problème : Le champ est mis a jour après le time.sleep(5) et non
avant ???
Hello tous,
Je met à jour un champ text ( phonenumber = gtk.Entry() ) , ensuite
j'attend 5 secondes (Voir code)
Le problème : Le champ est mis a jour après le time.sleep(5) et non
avant ???
Hello tous,
Je met à jour un champ text ( phonenumber = gtk.Entry() ) , ensuite
j'attend 5 secondes (Voir code)
Le problème : Le champ est mis a jour après le time.sleep(5) et non
avant ???
Bonjour,Hello tous,
Je met à jour un champ text ( phonenumber = gtk.Entry() ) , ensuite
j'attend 5 secondes (Voir code)
Le problème : Le champ est mis a jour après le time.sleep(5) et non
avant ???
C'est normal. Ce n'est pas un problème lié à python. C'est inhérent aux
systèmes graphiques.
Quand tu fais ceci
self.phonenumber.set_text("Envoi en cours ... Wait"
que se passe t-il ?
En fait, set_text() envoie un message à ton application. Ce message
demande de mettre à jour une fenêtre de ton application
(self.phonenumber). C'est tout.
Ensuite, tu bloques toute l'application (du moins le thread en cours)
avec le time.sleep().
Une fois que le délai est passé, ton appli est débloquée. Elle retourne
voir dans la liste des messages ce qu'il y a à faire. Elle y trouve le
message de mise à jour de la fenêtre self.phonenumber, ce message est
traité et le texte apparaît dans la fenêtre.
Il y a deux solutions : - virer le time.sleep()
- appeler la boucle de traitement des messages manuellement avant le
time.sleep() La deuxième solution n'est pas recommandée.
Nicolas
Pour les besoins de l'exemple, j'ai mis time.sleep(5).En realité
Bonjour,
Hello tous,
Je met à jour un champ text ( phonenumber = gtk.Entry() ) , ensuite
j'attend 5 secondes (Voir code)
Le problème : Le champ est mis a jour après le time.sleep(5) et non
avant ???
C'est normal. Ce n'est pas un problème lié à python. C'est inhérent aux
systèmes graphiques.
Quand tu fais ceci
self.phonenumber.set_text("Envoi en cours ... Wait"
que se passe t-il ?
En fait, set_text() envoie un message à ton application. Ce message
demande de mettre à jour une fenêtre de ton application
(self.phonenumber). C'est tout.
Ensuite, tu bloques toute l'application (du moins le thread en cours)
avec le time.sleep().
Une fois que le délai est passé, ton appli est débloquée. Elle retourne
voir dans la liste des messages ce qu'il y a à faire. Elle y trouve le
message de mise à jour de la fenêtre self.phonenumber, ce message est
traité et le texte apparaît dans la fenêtre.
Il y a deux solutions : - virer le time.sleep()
- appeler la boucle de traitement des messages manuellement avant le
time.sleep() La deuxième solution n'est pas recommandée.
Nicolas
Pour les besoins de l'exemple, j'ai mis time.sleep(5).En realité
Bonjour,Hello tous,
Je met à jour un champ text ( phonenumber = gtk.Entry() ) , ensuite
j'attend 5 secondes (Voir code)
Le problème : Le champ est mis a jour après le time.sleep(5) et non
avant ???
C'est normal. Ce n'est pas un problème lié à python. C'est inhérent aux
systèmes graphiques.
Quand tu fais ceci
self.phonenumber.set_text("Envoi en cours ... Wait"
que se passe t-il ?
En fait, set_text() envoie un message à ton application. Ce message
demande de mettre à jour une fenêtre de ton application
(self.phonenumber). C'est tout.
Ensuite, tu bloques toute l'application (du moins le thread en cours)
avec le time.sleep().
Une fois que le délai est passé, ton appli est débloquée. Elle retourne
voir dans la liste des messages ce qu'il y a à faire. Elle y trouve le
message de mise à jour de la fenêtre self.phonenumber, ce message est
traité et le texte apparaît dans la fenêtre.
Il y a deux solutions : - virer le time.sleep()
- appeler la boucle de traitement des messages manuellement avant le
time.sleep() La deuxième solution n'est pas recommandée.
Nicolas
Pour les besoins de l'exemple, j'ai mis time.sleep(5).En realité
Bonjour,Hello tous,
Je met à jour un champ text ( phonenumber = gtk.Entry() ) , ensuite
j'attend 5 secondes (Voir code)
Le problème : Le champ est mis a jour après le time.sleep(5) et non
avant ???
C'est normal. Ce n'est pas un problème lié à python. C'est inhérent
aux systèmes graphiques.
Quand tu fais ceci
self.phonenumber.set_text("Envoi en cours ... Wait"
que se passe t-il ?
En fait, set_text() envoie un message à ton application. Ce message
demande de mettre à jour une fenêtre de ton application
(self.phonenumber). C'est tout.
Ensuite, tu bloques toute l'application (du moins le thread en cours)
avec le time.sleep().
Une fois que le délai est passé, ton appli est débloquée. Elle
retourne voir dans la liste des messages ce qu'il y a à faire. Elle y
trouve le message de mise à jour de la fenêtre self.phonenumber, ce
message est traité et le texte apparaît dans la fenêtre.
Il y a deux solutions : - virer le time.sleep()
- appeler la boucle de traitement des messages manuellement avant le
time.sleep() La deuxième solution n'est pas recommandée.
Nicolas
Pour les besoins de l'exemple, j'ai mis time.sleep(5).En realité
l'application fais un appele systeme (os.system) qui peut prendre du
temps. Donc la solution 1 qui consiste à virer le time.sleep(5) n'est
pas possible.
Dans ce cas, il faut utiliser un thread pour le système fenêtré et un thread pour l'appel système.
Je vais tester ta solution 2 ... Si je trouve comment la mettre en
oeuvre :-)
Je déconseille vraiment. Un des effets de bord est que l'application ne réagit à plus rien. Par exemple, si une fenêtre d'une autre application vient par dessus celles de ton appli puis disparait, les fenêtres de ton appli ne seront pas mises à jour.
Bonjour,
Hello tous,
Je met à jour un champ text ( phonenumber = gtk.Entry() ) , ensuite
j'attend 5 secondes (Voir code)
Le problème : Le champ est mis a jour après le time.sleep(5) et non
avant ???
C'est normal. Ce n'est pas un problème lié à python. C'est inhérent
aux systèmes graphiques.
Quand tu fais ceci
self.phonenumber.set_text("Envoi en cours ... Wait"
que se passe t-il ?
En fait, set_text() envoie un message à ton application. Ce message
demande de mettre à jour une fenêtre de ton application
(self.phonenumber). C'est tout.
Ensuite, tu bloques toute l'application (du moins le thread en cours)
avec le time.sleep().
Une fois que le délai est passé, ton appli est débloquée. Elle
retourne voir dans la liste des messages ce qu'il y a à faire. Elle y
trouve le message de mise à jour de la fenêtre self.phonenumber, ce
message est traité et le texte apparaît dans la fenêtre.
Il y a deux solutions : - virer le time.sleep()
- appeler la boucle de traitement des messages manuellement avant le
time.sleep() La deuxième solution n'est pas recommandée.
Nicolas
Pour les besoins de l'exemple, j'ai mis time.sleep(5).En realité
l'application fais un appele systeme (os.system) qui peut prendre du
temps. Donc la solution 1 qui consiste à virer le time.sleep(5) n'est
pas possible.
Dans ce cas, il faut utiliser un thread pour le système fenêtré et un thread pour l'appel système.
Je vais tester ta solution 2 ... Si je trouve comment la mettre en
oeuvre :-)
Je déconseille vraiment. Un des effets de bord est que l'application ne réagit à plus rien. Par exemple, si une fenêtre d'une autre application vient par dessus celles de ton appli puis disparait, les fenêtres de ton appli ne seront pas mises à jour.
Bonjour,Hello tous,
Je met à jour un champ text ( phonenumber = gtk.Entry() ) , ensuite
j'attend 5 secondes (Voir code)
Le problème : Le champ est mis a jour après le time.sleep(5) et non
avant ???
C'est normal. Ce n'est pas un problème lié à python. C'est inhérent
aux systèmes graphiques.
Quand tu fais ceci
self.phonenumber.set_text("Envoi en cours ... Wait"
que se passe t-il ?
En fait, set_text() envoie un message à ton application. Ce message
demande de mettre à jour une fenêtre de ton application
(self.phonenumber). C'est tout.
Ensuite, tu bloques toute l'application (du moins le thread en cours)
avec le time.sleep().
Une fois que le délai est passé, ton appli est débloquée. Elle
retourne voir dans la liste des messages ce qu'il y a à faire. Elle y
trouve le message de mise à jour de la fenêtre self.phonenumber, ce
message est traité et le texte apparaît dans la fenêtre.
Il y a deux solutions : - virer le time.sleep()
- appeler la boucle de traitement des messages manuellement avant le
time.sleep() La deuxième solution n'est pas recommandée.
Nicolas
Pour les besoins de l'exemple, j'ai mis time.sleep(5).En realité
l'application fais un appele systeme (os.system) qui peut prendre du
temps. Donc la solution 1 qui consiste à virer le time.sleep(5) n'est
pas possible.
Dans ce cas, il faut utiliser un thread pour le système fenêtré et un thread pour l'appel système.
Je vais tester ta solution 2 ... Si je trouve comment la mettre en
oeuvre :-)
Je déconseille vraiment. Un des effets de bord est que l'application ne réagit à plus rien. Par exemple, si une fenêtre d'une autre application vient par dessus celles de ton appli puis disparait, les fenêtres de ton appli ne seront pas mises à jour.
Bonjour,Hello tous,
Je met à jour un champ text ( phonenumber = gtk.Entry() ) , ensuite
j'attend 5 secondes (Voir code)
Le problème : Le champ est mis a jour après le time.sleep(5) et non
avant ???
C'est normal. Ce n'est pas un problème lié à python. C'est inhérent
aux systèmes graphiques.
Quand tu fais ceci
self.phonenumber.set_text("Envoi en cours ... Wait"
que se passe t-il ?
En fait, set_text() envoie un message à ton application. Ce message
demande de mettre à jour une fenêtre de ton application
(self.phonenumber). C'est tout.
Ensuite, tu bloques toute l'application (du moins le thread en cours)
avec le time.sleep().
Une fois que le délai est passé, ton appli est débloquée. Elle
retourne voir dans la liste des messages ce qu'il y a à faire. Elle y
trouve le message de mise à jour de la fenêtre self.phonenumber, ce
message est traité et le texte apparaît dans la fenêtre.
Il y a deux solutions : - virer le time.sleep()
- appeler la boucle de traitement des messages manuellement avant le
time.sleep() La deuxième solution n'est pas recommandée.
Nicolas
Pour les besoins de l'exemple, j'ai mis time.sleep(5).En realité
l'application fais un appele systeme (os.system) qui peut prendre du
temps. Donc la solution 1 qui consiste à virer le time.sleep(5) n'est
pas possible.
Dans ce cas, il faut utiliser un thread pour le système fenêtré et un
thread pour l'appel système.Je vais tester ta solution 2 ... Si je trouve comment la mettre en
oeuvre :-)
Je déconseille vraiment. Un des effets de bord est que l'application ne
réagit à plus rien. Par exemple, si une fenêtre d'une autre application
vient par dessus celles de ton appli puis disparait, les fenêtres de ton
appli ne seront pas mises à jour.
Nicolas
Bonjour,
Hello tous,
Je met à jour un champ text ( phonenumber = gtk.Entry() ) , ensuite
j'attend 5 secondes (Voir code)
Le problème : Le champ est mis a jour après le time.sleep(5) et non
avant ???
C'est normal. Ce n'est pas un problème lié à python. C'est inhérent
aux systèmes graphiques.
Quand tu fais ceci
self.phonenumber.set_text("Envoi en cours ... Wait"
que se passe t-il ?
En fait, set_text() envoie un message à ton application. Ce message
demande de mettre à jour une fenêtre de ton application
(self.phonenumber). C'est tout.
Ensuite, tu bloques toute l'application (du moins le thread en cours)
avec le time.sleep().
Une fois que le délai est passé, ton appli est débloquée. Elle
retourne voir dans la liste des messages ce qu'il y a à faire. Elle y
trouve le message de mise à jour de la fenêtre self.phonenumber, ce
message est traité et le texte apparaît dans la fenêtre.
Il y a deux solutions : - virer le time.sleep()
- appeler la boucle de traitement des messages manuellement avant le
time.sleep() La deuxième solution n'est pas recommandée.
Nicolas
Pour les besoins de l'exemple, j'ai mis time.sleep(5).En realité
l'application fais un appele systeme (os.system) qui peut prendre du
temps. Donc la solution 1 qui consiste à virer le time.sleep(5) n'est
pas possible.
Dans ce cas, il faut utiliser un thread pour le système fenêtré et un
thread pour l'appel système.
Je vais tester ta solution 2 ... Si je trouve comment la mettre en
oeuvre :-)
Je déconseille vraiment. Un des effets de bord est que l'application ne
réagit à plus rien. Par exemple, si une fenêtre d'une autre application
vient par dessus celles de ton appli puis disparait, les fenêtres de ton
appli ne seront pas mises à jour.
Nicolas
Bonjour,Hello tous,
Je met à jour un champ text ( phonenumber = gtk.Entry() ) , ensuite
j'attend 5 secondes (Voir code)
Le problème : Le champ est mis a jour après le time.sleep(5) et non
avant ???
C'est normal. Ce n'est pas un problème lié à python. C'est inhérent
aux systèmes graphiques.
Quand tu fais ceci
self.phonenumber.set_text("Envoi en cours ... Wait"
que se passe t-il ?
En fait, set_text() envoie un message à ton application. Ce message
demande de mettre à jour une fenêtre de ton application
(self.phonenumber). C'est tout.
Ensuite, tu bloques toute l'application (du moins le thread en cours)
avec le time.sleep().
Une fois que le délai est passé, ton appli est débloquée. Elle
retourne voir dans la liste des messages ce qu'il y a à faire. Elle y
trouve le message de mise à jour de la fenêtre self.phonenumber, ce
message est traité et le texte apparaît dans la fenêtre.
Il y a deux solutions : - virer le time.sleep()
- appeler la boucle de traitement des messages manuellement avant le
time.sleep() La deuxième solution n'est pas recommandée.
Nicolas
Pour les besoins de l'exemple, j'ai mis time.sleep(5).En realité
l'application fais un appele systeme (os.system) qui peut prendre du
temps. Donc la solution 1 qui consiste à virer le time.sleep(5) n'est
pas possible.
Dans ce cas, il faut utiliser un thread pour le système fenêtré et un
thread pour l'appel système.Je vais tester ta solution 2 ... Si je trouve comment la mettre en
oeuvre :-)
Je déconseille vraiment. Un des effets de bord est que l'application ne
réagit à plus rien. Par exemple, si une fenêtre d'une autre application
vient par dessus celles de ton appli puis disparait, les fenêtres de ton
appli ne seront pas mises à jour.
Nicolas
Bonjour,Hello tous,
Je met à jour un champ text ( phonenumber = gtk.Entry() ) , ensuite
j'attend 5 secondes (Voir code)
Le problème : Le champ est mis a jour après le time.sleep(5) et non
avant ???
C'est normal. Ce n'est pas un problème lié à python. C'est inhérent
aux systèmes graphiques.
Quand tu fais ceci
self.phonenumber.set_text("Envoi en cours ... Wait"
que se passe t-il ?
En fait, set_text() envoie un message à ton application. Ce message
demande de mettre à jour une fenêtre de ton application
(self.phonenumber). C'est tout.
Ensuite, tu bloques toute l'application (du moins le thread en
cours) avec le time.sleep().
Une fois que le délai est passé, ton appli est débloquée. Elle
retourne voir dans la liste des messages ce qu'il y a à faire. Elle
y trouve le message de mise à jour de la fenêtre self.phonenumber,
ce message est traité et le texte apparaît dans la fenêtre.
Il y a deux solutions : - virer le time.sleep()
- appeler la boucle de traitement des messages manuellement avant le
time.sleep() La deuxième solution n'est pas recommandée.
Nicolas
Pour les besoins de l'exemple, j'ai mis time.sleep(5).En realité
l'application fais un appele systeme (os.system) qui peut prendre du
temps. Donc la solution 1 qui consiste à virer le time.sleep(5) n'est
pas possible.
Dans ce cas, il faut utiliser un thread pour le système fenêtré et un
thread pour l'appel système.Je vais tester ta solution 2 ... Si je trouve comment la mettre en
oeuvre :-)
Je déconseille vraiment. Un des effets de bord est que l'application
ne réagit à plus rien. Par exemple, si une fenêtre d'une autre
application vient par dessus celles de ton appli puis disparait, les
fenêtres de ton appli ne seront pas mises à jour.
Nicolas
Peut-être un fork () avec un exec() dans le processus fils a la place de
ta commande system () resoudrait le probleme.
Sinon, utiliser un thread pour lancer ta commande.
Ces deux possibilités devraient laisser la main au gestionnaire de
fenêtres et lui permettre de mettre à jour ton label.
OK merci je vais forker :-)
Bonjour,
Hello tous,
Je met à jour un champ text ( phonenumber = gtk.Entry() ) , ensuite
j'attend 5 secondes (Voir code)
Le problème : Le champ est mis a jour après le time.sleep(5) et non
avant ???
C'est normal. Ce n'est pas un problème lié à python. C'est inhérent
aux systèmes graphiques.
Quand tu fais ceci
self.phonenumber.set_text("Envoi en cours ... Wait"
que se passe t-il ?
En fait, set_text() envoie un message à ton application. Ce message
demande de mettre à jour une fenêtre de ton application
(self.phonenumber). C'est tout.
Ensuite, tu bloques toute l'application (du moins le thread en
cours) avec le time.sleep().
Une fois que le délai est passé, ton appli est débloquée. Elle
retourne voir dans la liste des messages ce qu'il y a à faire. Elle
y trouve le message de mise à jour de la fenêtre self.phonenumber,
ce message est traité et le texte apparaît dans la fenêtre.
Il y a deux solutions : - virer le time.sleep()
- appeler la boucle de traitement des messages manuellement avant le
time.sleep() La deuxième solution n'est pas recommandée.
Nicolas
Pour les besoins de l'exemple, j'ai mis time.sleep(5).En realité
l'application fais un appele systeme (os.system) qui peut prendre du
temps. Donc la solution 1 qui consiste à virer le time.sleep(5) n'est
pas possible.
Dans ce cas, il faut utiliser un thread pour le système fenêtré et un
thread pour l'appel système.
Je vais tester ta solution 2 ... Si je trouve comment la mettre en
oeuvre :-)
Je déconseille vraiment. Un des effets de bord est que l'application
ne réagit à plus rien. Par exemple, si une fenêtre d'une autre
application vient par dessus celles de ton appli puis disparait, les
fenêtres de ton appli ne seront pas mises à jour.
Nicolas
Peut-être un fork () avec un exec() dans le processus fils a la place de
ta commande system () resoudrait le probleme.
Sinon, utiliser un thread pour lancer ta commande.
Ces deux possibilités devraient laisser la main au gestionnaire de
fenêtres et lui permettre de mettre à jour ton label.
OK merci je vais forker :-)
Bonjour,Hello tous,
Je met à jour un champ text ( phonenumber = gtk.Entry() ) , ensuite
j'attend 5 secondes (Voir code)
Le problème : Le champ est mis a jour après le time.sleep(5) et non
avant ???
C'est normal. Ce n'est pas un problème lié à python. C'est inhérent
aux systèmes graphiques.
Quand tu fais ceci
self.phonenumber.set_text("Envoi en cours ... Wait"
que se passe t-il ?
En fait, set_text() envoie un message à ton application. Ce message
demande de mettre à jour une fenêtre de ton application
(self.phonenumber). C'est tout.
Ensuite, tu bloques toute l'application (du moins le thread en
cours) avec le time.sleep().
Une fois que le délai est passé, ton appli est débloquée. Elle
retourne voir dans la liste des messages ce qu'il y a à faire. Elle
y trouve le message de mise à jour de la fenêtre self.phonenumber,
ce message est traité et le texte apparaît dans la fenêtre.
Il y a deux solutions : - virer le time.sleep()
- appeler la boucle de traitement des messages manuellement avant le
time.sleep() La deuxième solution n'est pas recommandée.
Nicolas
Pour les besoins de l'exemple, j'ai mis time.sleep(5).En realité
l'application fais un appele systeme (os.system) qui peut prendre du
temps. Donc la solution 1 qui consiste à virer le time.sleep(5) n'est
pas possible.
Dans ce cas, il faut utiliser un thread pour le système fenêtré et un
thread pour l'appel système.Je vais tester ta solution 2 ... Si je trouve comment la mettre en
oeuvre :-)
Je déconseille vraiment. Un des effets de bord est que l'application
ne réagit à plus rien. Par exemple, si une fenêtre d'une autre
application vient par dessus celles de ton appli puis disparait, les
fenêtres de ton appli ne seront pas mises à jour.
Nicolas
Peut-être un fork () avec un exec() dans le processus fils a la place de
ta commande system () resoudrait le probleme.
Sinon, utiliser un thread pour lancer ta commande.
Ces deux possibilités devraient laisser la main au gestionnaire de
fenêtres et lui permettre de mettre à jour ton label.
OK merci je vais forker :-)
Bonjour,Hello tous,
Je met à jour un champ text ( phonenumber = gtk.Entry() ) ,
ensuite j'attend 5 secondes (Voir code)
Le problème : Le champ est mis a jour après le time.sleep(5) et
non avant ???
C'est normal. Ce n'est pas un problème lié à python. C'est inhérent
aux systèmes graphiques.
Quand tu fais ceci
self.phonenumber.set_text("Envoi en cours ... Wait"
que se passe t-il ?
En fait, set_text() envoie un message à ton application. Ce message
demande de mettre à jour une fenêtre de ton application
(self.phonenumber). C'est tout.
Ensuite, tu bloques toute l'application (du moins le thread en
cours) avec le time.sleep().
Une fois que le délai est passé, ton appli est débloquée. Elle
retourne voir dans la liste des messages ce qu'il y a à faire. Elle
y trouve le message de mise à jour de la fenêtre self.phonenumber,
ce message est traité et le texte apparaît dans la fenêtre.
Il y a deux solutions : - virer le time.sleep()
- appeler la boucle de traitement des messages manuellement avant
le time.sleep() La deuxième solution n'est pas recommandée.
Nicolas
Pour les besoins de l'exemple, j'ai mis time.sleep(5).En realité
l'application fais un appele systeme (os.system) qui peut prendre du
temps. Donc la solution 1 qui consiste à virer le time.sleep(5)
n'est pas possible.
Dans ce cas, il faut utiliser un thread pour le système fenêtré et un
thread pour l'appel système.Je vais tester ta solution 2 ... Si je trouve comment la mettre en
oeuvre :-)
Je déconseille vraiment. Un des effets de bord est que l'application
ne réagit à plus rien. Par exemple, si une fenêtre d'une autre
application vient par dessus celles de ton appli puis disparait, les
fenêtres de ton appli ne seront pas mises à jour.
Nicolas
Peut-être un fork () avec un exec() dans le processus fils a la place
de ta commande system () resoudrait le probleme.
Sinon, utiliser un thread pour lancer ta commande.
Ces deux possibilités devraient laisser la main au gestionnaire de
fenêtres et lui permettre de mettre à jour ton label.
OK merci je vais forker :-)
Vous aurez compris que c-note = elfoiros (Compte perso et boulot) :-)
Bonjour,
Hello tous,
Je met à jour un champ text ( phonenumber = gtk.Entry() ) ,
ensuite j'attend 5 secondes (Voir code)
Le problème : Le champ est mis a jour après le time.sleep(5) et
non avant ???
C'est normal. Ce n'est pas un problème lié à python. C'est inhérent
aux systèmes graphiques.
Quand tu fais ceci
self.phonenumber.set_text("Envoi en cours ... Wait"
que se passe t-il ?
En fait, set_text() envoie un message à ton application. Ce message
demande de mettre à jour une fenêtre de ton application
(self.phonenumber). C'est tout.
Ensuite, tu bloques toute l'application (du moins le thread en
cours) avec le time.sleep().
Une fois que le délai est passé, ton appli est débloquée. Elle
retourne voir dans la liste des messages ce qu'il y a à faire. Elle
y trouve le message de mise à jour de la fenêtre self.phonenumber,
ce message est traité et le texte apparaît dans la fenêtre.
Il y a deux solutions : - virer le time.sleep()
- appeler la boucle de traitement des messages manuellement avant
le time.sleep() La deuxième solution n'est pas recommandée.
Nicolas
Pour les besoins de l'exemple, j'ai mis time.sleep(5).En realité
l'application fais un appele systeme (os.system) qui peut prendre du
temps. Donc la solution 1 qui consiste à virer le time.sleep(5)
n'est pas possible.
Dans ce cas, il faut utiliser un thread pour le système fenêtré et un
thread pour l'appel système.
Je vais tester ta solution 2 ... Si je trouve comment la mettre en
oeuvre :-)
Je déconseille vraiment. Un des effets de bord est que l'application
ne réagit à plus rien. Par exemple, si une fenêtre d'une autre
application vient par dessus celles de ton appli puis disparait, les
fenêtres de ton appli ne seront pas mises à jour.
Nicolas
Peut-être un fork () avec un exec() dans le processus fils a la place
de ta commande system () resoudrait le probleme.
Sinon, utiliser un thread pour lancer ta commande.
Ces deux possibilités devraient laisser la main au gestionnaire de
fenêtres et lui permettre de mettre à jour ton label.
OK merci je vais forker :-)
Vous aurez compris que c-note = elfoiros (Compte perso et boulot) :-)
Bonjour,Hello tous,
Je met à jour un champ text ( phonenumber = gtk.Entry() ) ,
ensuite j'attend 5 secondes (Voir code)
Le problème : Le champ est mis a jour après le time.sleep(5) et
non avant ???
C'est normal. Ce n'est pas un problème lié à python. C'est inhérent
aux systèmes graphiques.
Quand tu fais ceci
self.phonenumber.set_text("Envoi en cours ... Wait"
que se passe t-il ?
En fait, set_text() envoie un message à ton application. Ce message
demande de mettre à jour une fenêtre de ton application
(self.phonenumber). C'est tout.
Ensuite, tu bloques toute l'application (du moins le thread en
cours) avec le time.sleep().
Une fois que le délai est passé, ton appli est débloquée. Elle
retourne voir dans la liste des messages ce qu'il y a à faire. Elle
y trouve le message de mise à jour de la fenêtre self.phonenumber,
ce message est traité et le texte apparaît dans la fenêtre.
Il y a deux solutions : - virer le time.sleep()
- appeler la boucle de traitement des messages manuellement avant
le time.sleep() La deuxième solution n'est pas recommandée.
Nicolas
Pour les besoins de l'exemple, j'ai mis time.sleep(5).En realité
l'application fais un appele systeme (os.system) qui peut prendre du
temps. Donc la solution 1 qui consiste à virer le time.sleep(5)
n'est pas possible.
Dans ce cas, il faut utiliser un thread pour le système fenêtré et un
thread pour l'appel système.Je vais tester ta solution 2 ... Si je trouve comment la mettre en
oeuvre :-)
Je déconseille vraiment. Un des effets de bord est que l'application
ne réagit à plus rien. Par exemple, si une fenêtre d'une autre
application vient par dessus celles de ton appli puis disparait, les
fenêtres de ton appli ne seront pas mises à jour.
Nicolas
Peut-être un fork () avec un exec() dans le processus fils a la place
de ta commande system () resoudrait le probleme.
Sinon, utiliser un thread pour lancer ta commande.
Ces deux possibilités devraient laisser la main au gestionnaire de
fenêtres et lui permettre de mettre à jour ton label.
OK merci je vais forker :-)
Vous aurez compris que c-note = elfoiros (Compte perso et boulot) :-)
Peut-être un fork () avec un exec() dans le processus fils a la place de
ta commande system () resoudrait le probleme.
Un system(), à la base, c'est quand même un peu fork()+exec()...
Peut-être un fork () avec un exec() dans le processus fils a la place de
ta commande system () resoudrait le probleme.
Un system(), à la base, c'est quand même un peu fork()+exec()...
Peut-être un fork () avec un exec() dans le processus fils a la place de
ta commande system () resoudrait le probleme.
Un system(), à la base, c'est quand même un peu fork()+exec()...
--{ Alain BARTHE a plopé ceci: }--Peut-être un fork () avec un exec() dans le processus fils a la place de
ta commande system () resoudrait le probleme.
Un system(), à la base, c'est quand même un peu fork()+exec()...
C'est vrai tu as raison.
--{ Alain BARTHE a plopé ceci: }--
Peut-être un fork () avec un exec() dans le processus fils a la place de
ta commande system () resoudrait le probleme.
Un system(), à la base, c'est quand même un peu fork()+exec()...
C'est vrai tu as raison.
--{ Alain BARTHE a plopé ceci: }--Peut-être un fork () avec un exec() dans le processus fils a la place de
ta commande system () resoudrait le probleme.
Un system(), à la base, c'est quand même un peu fork()+exec()...
C'est vrai tu as raison.