IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

GUI Python Discussion :

Affichage texte dans un text buffer (Thread)


Sujet :

GUI Python

  1. #1
    Membre du Club
    Inscrit en
    Novembre 2005
    Messages
    110
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 110
    Points : 47
    Points
    47
    Par défaut Affichage texte dans un text buffer (Thread)
    Bonjour à tous,

    j'aimerais afficher un message (et le mettre à jour) dans un text buffer toutes les secondes... un message du type :

    Démarrage dans 10 secondes
    Démarrage dans 9 secondes
    Démarrage dans 8 secondes
    Démarrage dans 7 secondes

    J'ai donc défini une classe GuiDisplay :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
     
    class GuiDisplay (Thread) : 
        def __init__(self, displayType, textBuffer, text, time):
            Thread.__init__(self)
    	self.displayType = displayType
    	self.textBuffer = textBuffer
    	self.text = text
    	self.time = time	
     
        def run(self):
    	if (self.displayType == DisplayType.PROGRESS) :
    		elapsed_time = 1
    		self.time = self.time + 1
    		startIt = self.textBuffer.get_end_iter()
    		length = len(message)
    		while (elapsed_time < self.time) :
    			progress = int(elapsed_time / self.time * 100)
    			message = self.text % (progress)
    			print("PROGRESS...")
    			self.textBuffer.insert(startIt, message)
    			endIt = self.textBuffer.get_end_iter()
    			time.sleep(1)
    			elapsed_time = elapsed_time + 1
    			self.textBuffer.delete(startIt, endIt)
    		return None
    	if (self.displayType == DisplayType.SUMMARY) :
    		elapsed_time = 1
    		self.time = self.time + 1
    		startIt = self.textBuffer.get_end_iter()
    		while (elapsed_time < self.time) :
    			message = self.text % (self.time - elapsed_time)
    			length = len(message)
    			self.textBuffer.insert(startIt, message)
    			endIt = self.textBuffer.get_end_iter()
    			print("SUMMARY : " + message + "\n")
    			time.sleep(1)
    			elapsed_time = elapsed_time + 1
    			self.textBuffer.delete(startIt, endIt)
    		return None
     
    class DisplayType :
    	PROGRESS=1
    	SUMMARY=2
    Malheureusement ça ne fonctionne pas... le thread est bien lancé (rien ne s'affiche dans la zone de texte) mais l'interface graphique freeze et je dois justement pouvoir cliquer sur le bouton Annuler.

    Je créé le Thread comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    		self.summaryThread = GuiDisplay(DisplayType.SUMMARY, self.textBuffer, message, self.waiting_seconds)
    		self.summaryThread.start()
    		self.summaryThread.join()
    Quelqu'un pourrait m'expliquer ce qui ne va pas?

  2. #2
    Membre du Club
    Inscrit en
    Novembre 2005
    Messages
    110
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 110
    Points : 47
    Points
    47
    Par défaut
    J'ai trouvé quelque chose...

    je devrais utiliser
    - gtk.gdk.threads_init ()
    - gtk.gdk.threads_enter ()
    - gtk.gdk.threads_leave ()

    dans le main mais je n'y arrive toujours pas. Le thread DisplayGui tourne bien mais la Gui freeze encore...

Discussions similaires

  1. Affichage d'un fichier texte dans une interface java
    Par Nawel_Hafsa dans le forum Interfaces Graphiques en Java
    Réponses: 4
    Dernier message: 28/05/2014, 10h10
  2. [Débutant] Affichage de texte dans une texte box
    Par lolocks dans le forum VB.NET
    Réponses: 1
    Dernier message: 24/01/2013, 16h41
  3. Affichage de plusieurs fichiers text dans une seule JtextArea
    Par kinza-22 dans le forum Entrée/Sortie
    Réponses: 5
    Dernier message: 06/06/2010, 12h39
  4. Affichage HTML dans un text ou textarea
    Par KamaFlex dans le forum Flex
    Réponses: 12
    Dernier message: 23/02/2010, 16h06
  5. Affichage d'un fichier texte dans une fenetre
    Par schwinny dans le forum Access
    Réponses: 3
    Dernier message: 11/08/2006, 08h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo