Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2543 connectés 

  FORUM HardWare.fr
  Programmation
  Python

  thread en PYGTK

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

thread en PYGTK

n°1968269
mcherkao88
Posté le 22-02-2010 à 18:48:38  profilanswer
 

Bonjour,
Je travaille sur la réalisation d'une interface graphique qui fait en quelque sorte un MSN.Le serveur est capable de recevoir et d'émettre les messages (c'est là où réside le problème) .Ma fenêtre serveur est constituée de la partie "edit1" pour afficher le déroulement de la conversation, "edit2" où on écrit les messages à envoyer et le bouton "envoyer" pour actionner l'envoi . Le Thread de réception me bloque la fenêtre sachant que des fois je reÇois le 1er message seulement.
La moindre remarque serait la bien venu.
Voilà mon code:
########## SERVEUR ##########

Code :
  1. #!/usr/bin/python
  2. from bluetooth import *
  3. import socket, sys, threading,time
  4. import pygtk
  5. pygtk.require("2.0" )
  6. import gtk
  7. import gobject
  8. gtk.gdk.threads_init()
  9. port = 3
  10. server_sock = BluetoothSocket( RFCOMM )
  11. server_sock . bind(("", 3))
  12. server_sock . listen(1)
  13. connexion , client_info = server_sock . accept( )
  14. print "Accepted connection from " , client_info
  15. class MyThread(threading.Thread):
  16.      def __init__(self, TextView):
  17.          super(MyThread, self).__init__()
  18.          self.TextView = TextView
  19.          self.quit = False
  20.      def update_TextView(self):
  21.          recu=connexion.recv(255)
  22.          if recu == "" :pass
  23.          else:
  24.                  tempo=self.TextView.get_buffer()
  25.                  iterfin = tempo.get_end_iter()
  26.                  tempo.insert(iterfin,recu)
  27.                  self.TextView.set_buffer(tempo)
  28.        
  29.          return False
  30.      def run(self):
  31.          while not self.quit:
  32.              gobject.idle_add(self.update_TextView)
  33.              time.sleep(1)
  34.        
  35.          
  36. class chat:
  37.         def __init__(self):
  38.                 interface = gtk.Builder()
  39.                 interface.add_from_file('chats.glade')
  40.                
  41.                 self.edit1 = interface.get_object("edit1" )
  42.                 self.edit2 = interface.get_object("edit2" )
  43.                 interface.connect_signals(self)
  44.                 t = MyThread(self.edit1)
  45.                 t.start()
  46.         def on_maFenetre_destroy(self, widget):
  47.                 gtk.main_quit()
  48.                 connexion.close()
  49.                 server_sock.close()
  50.         def on_envoyer_clicked(self, widget):
  51.                 tempo2=self.edit2.get_buffer()
  52.                 tempo1=self.edit1.get_buffer()
  53.                 iterdebut1 = tempo1.get_start_iter()
  54.                 iterfin1 = tempo1.get_end_iter()
  55.                 iterdebut2 = tempo2.get_start_iter()
  56.                 iterfin2 = tempo2.get_end_iter()
  57.                 texte2=tempo2.get_text(iterdebut2,iterfin2)
  58.                 resultat = iterfin1.forward_line()
  59.                 tempo1.insert(iterfin1,texte2)
  60.                 connexion.send(texte2)
  61.                 tempo2.delete(iterdebut2, iterfin2)
  62.                 self.edit1.set_buffer(tempo1)
  63.                 self.edit2.set_buffer(tempo2)
  64.                 self.edit2.set_buffer(tempo2)
  65.                
  66. if __name__ == "__main__":
  67.         chat()
  68.         gtk.main()
  69.         t.quit = True

mood
Publicité
Posté le 22-02-2010 à 18:48:38  profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Python

  thread en PYGTK

 

Sujets relatifs
Exception in thread "main" java.lang.NoClassDefFoundError[Resolu] Passage d'argument a un thread
Thread python et arret du scripte (ctl + c)les fonctions "thread_safe" et la programmation multi-thread
fermeture thread javaPyGTK imprimer
Laisser tourner un thread en fin de sessionprobleme thread linux (pthread)
vector et thread safe[pygtk] thread & rafraichissement
Plus de sujets relatifs à : thread en PYGTK


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)