Achetez et vendez votre matériel multimédia d'occasion sur notre service de petites annonces informatiques gratuites

Thread sur PYGTK

Forum informatique > Demandes > Thread sur PYGTK

<<<1>>>

[Page 1 sur 1 - 1 message]
Informations Messages

mcherkao88

Avatar de mcherkao88
4 messages
Neurone isolé
Neurone isolé

Lien direct Le 22 Février 2010 à 18h40

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


#!/usr/bin/python

from bluetooth import *
import socket, sys, threading,time
import pygtk
pygtk.require("2.0")
import gtk
import gobject

gtk.gdk.threads_init()

port = 3

server_sock = BluetoothSocket( RFCOMM )
server_sock . bind(("", 3))
server_sock . listen(1)

connexion , client_info = server_sock . accept( )
print "Accepted connection from " , client_info

class MyThread(threading.Thread):
def __init__(self, TextView):
super(MyThread, self).__init__()
self.TextView = TextView
self.quit = False

def update_TextView(self):
recu=connexion.recv(255)
if recu == "":-Pass
else:
tempo=self.TextView.get_buffer()
iterfin = tempo.get_end_iter()
tempo.insert(iterfin,recu)
self.TextView.set_buffer(tempo)

return False

def run(self):
while not self.quit:
gobject.idle_add(self.update_TextView)
time.sleep(1)



class chat:
def __init__(self):
interface = gtk.Builder()
interface.add_from_file('chats.glade')

self.edit1 = interface.get_object("edit1")
self.edit2 = interface.get_object("edit2")
interface.connect_signals(self)
t = MyThread(self.edit1)
t.start()

def on_maFenetre_destroy(self, widget):
gtk.main_quit()
connexion.close()
server_sock.close()

def on_envoyer_clicked(self, widget):
tempo2=self.edit2.get_buffer()
tempo1=self.edit1.get_buffer()
iterdebut1 = tempo1.get_start_iter()
iterfin1 = tempo1.get_end_iter()
iterdebut2 = tempo2.get_start_iter()
iterfin2 = tempo2.get_end_iter()
texte2=tempo2.get_text(iterdebut2,iterfin2)
resultat = iterfin1.forward_line()
tempo1.insert(iterfin1,texte2)
connexion.send(texte2)
tempo2.delete(iterdebut2, iterfin2)
self.edit1.set_buffer(tempo1)
self.edit2.set_buffer(tempo2)
self.edit2.set_buffer(tempo2)


if __name__ == "__main__":
chat()
gtk.main()
t.quit = True

 

<<<1>>>

[Page 1 sur 1 - 1 message]

Forum informatique > Demandes > Thread sur PYGTK