Informatique - Forum informatique - telechargement gratuit

 CONTACT 
Gsiteg(à)gmail.com
Renplacer (à) par @



 FAQFAQ   RechercherRechercher   S'enregistrerS'enregistrer   ProfilProfil   Se connecter pour vérifier ses messages privésSe connecter pour vérifier ses messages privés   ConnexionConnexion 


thread sur PYGTK

 
Poster un nouveau sujet   Répondre au sujet    GsiteG Index du Forum -> Programmation & développement
Auteur Message
mcherkao88



Inscrit le: 15 Jan 2010
Messages: 3

MessagePosté le: Lun Fév 22, 2010 5:55 pm    Sujet du message: thread sur PYGTK Répondre en citant

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

Voir le profil de l'utilisateur Envoyer un message privé


Montrer les messages depuis:   
Poster un nouveau sujet   Répondre au sujet    GsiteG Index du Forum -> Programmation & développement Toutes les heures sont au format GMT
Page 1 sur 1

 
Sauter vers:  



Powered by phpBB © 2001, 2005 phpBB Group
Traduction par : phpBB-fr.com

phpBB SEO


Articles OuedZem | Gagner de l'argent | Webdesigner | Forum informatique | Sapeurs-pompiers

Copyright © 2007 www.GsiteG.com - Tous droits réservés