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

GTK+ avec Python Discussion :

Affichage en retard


Sujet :

GTK+ avec Python

  1. #1
    Membre �clair�
    Homme Profil pro
    �tudiant
    Inscrit en
    Novembre 2008
    Messages
    327
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 34
    Localisation : France, Seine et Marne (�le de France)

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Novembre 2008
    Messages : 327
    Par d�faut Affichage en retard
    Bonjour a tous et merci de prendre le temps de m'aider et peut etre aider les personnes qui sont dans cette meme configuration.

    Je programme donc une application en pygtk et utilise glade comme interface graphique, mon application r�side en un echange de messages entre clients et serveur.

    Voici ou j'en suis:
    Toutes mon interface eest cr�e, un champs pour ecrire et champs pour afficher les messages, le serveur marche parfaitement, il recoit et renvoie bien tous les messages a tous les clients. Je tient a signaler que partie client, lorsque je me connecte, je cree un thread pour gerer la reception des messages.

    Voici mon probleme:
    Lorsque je me conencte, le thread sinitialise correctement, et c'est alors que commence a boucle et elle commence par une attente d'un message, (normal) et le probleme c'est des quelle recoit le message je suis obliger d'effectuer une action sur mon application pour faire apparaitre le message.
    Je m'explique, en gros une fois que j'ai envoy� mon message, il apparrait pas instantan�ment et n'apparait pas du tout (toujorus partie client dans le champs prevu a l'affichage des messages) si je ne fait rien, je suis obliger de cliquer sur des bouton de l'application, ou de commencer a ecrire le emssage suivant pour qu'il daigne bien m'afficher le message, un peut agacent, c'est comme si mon application se mettait inactif si je fais rien.

    Ce que je sais:
    Il est sur que cela ne vient pas du serveur, car si j'envoie le message, que je ferme la partie serveur, et que je bouge un peu mon application, le message apparait, cela veut bien dire qu'il la deja recu il y a un petit moment, pourquoi ne l'a-t-il pas affich� directement, je ne sais pas et c'est mon probleme du jour.

    Je vous remercie cordiallement d'avance de vous pr�occup� de mon probleme, je suis nouveau dans python, essay� d'etre precis s'il vous plait ^^. Pour tout renseignement suppl�mentaire, n'esitez pas. Merci a tous...

  2. #2
    Membre confirm� Avatar de figarojuju
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    133
    D�tails du profil
    Informations personnelles :
    Localisation : France, H�rault (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2006
    Messages : 133
    Par d�faut
    Bonjour,
    es-tu all� voir du c�t� des fonctions du type gobject.timeout_add (http://www.pygtk.org/pygtk2reference/gobject-functions.html) pour mettre � jour r�guli�rement ton affichage de mani�re automatique ?
    Bonne journ�e.

  3. #3
    Membre �clair�
    Homme Profil pro
    �tudiant
    Inscrit en
    Novembre 2008
    Messages
    327
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 34
    Localisation : France, Seine et Marne (�le de France)

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Novembre 2008
    Messages : 327
    Par d�faut
    Je pense que se que tu m'as donn� pourrait en effet resoudre mon probleme definitivement, faire un rafraichissement automatique.

    Le truc c'est que sa marche pas au top, j'ai toujrous une erreur, a l'interieur du script.py j'ai rajouter

    import gobject

    dans ma classe principalle, dans __init__ :
    gobject.type_name(monapplicationglade)
    gobject.timeout_add (1000, self.test)
    def test(self):
    print 'test'

    Le probleme c'est que sa maffiche test pas toutes les secondes mais juste une fois. Ou je me susi trompe, je pense dans la selection du fichier gobject, j'ai pris toute mon application, mais je prends quoi a la place ?

    En tout cas je te remercie beaucoup car je commence a voir le bout du tunnel, je pensais vraiment que c'etait foutu ^^. Je vais continuer a chercher la fonction, si vous savez n'�sitez pas lol.

  4. #4
    Membre confirm� Avatar de figarojuju
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    133
    D�tails du profil
    Informations personnelles :
    Localisation : France, H�rault (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2006
    Messages : 133
    Par d�faut
    Que penses-tu de faire un truc du style :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    def __init__(self) :
             self.test()
     
    def boucle(self) :
             gobject.timeout_add (1000, self.test)
     
    def test(self) :
             print "je suis là" 
         self.boucle()
    @+

  5. #5
    Membre �clair�
    Homme Profil pro
    �tudiant
    Inscrit en
    Novembre 2008
    Messages
    327
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 34
    Localisation : France, Seine et Marne (�le de France)

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Novembre 2008
    Messages : 327
    Par d�faut
    Lol desole, j'avais zap� quelque chose, au lieu de supprimer mon ancien post je prefere ecrire celui la pour aider les autres, il faut specifier a la fin de votre fonction qui est appell� 'return True' sinon elle est stop�.

    En revanche ce que j'aimerai savoir c'est si quelquun connait la fonction pour rafraichir, j'en est trouv� pas mal mais jamais une potable.

    En tout cas merci mille fois, c'est presque finit.

    Sa donnerai alros par rapport au script que tu as fait

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    def __init__(self) :
             gobject.timeout_add (1000, self.test)
     
    def test(self) :
             print "je suis là" 
             return True
    Je pense que les deux marches.

  6. #6
    Membre �clair�
    Homme Profil pro
    �tudiant
    Inscrit en
    Novembre 2008
    Messages
    327
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 34
    Localisation : France, Seine et Marne (�le de France)

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Novembre 2008
    Messages : 327
    Par d�faut
    Bon je pense qu'il est temps de mettre un terme a ce topic, je suis vraimentr super content et te remercirai jamais autant, il ma suffit de rajouter dans la fonction :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    def test(self) :
             gtk.main_iteration()
             return True
    Et je conseille fortement de mettre un intervalle vraiment mince afin qu'l n'y est aucune coupure, pour ma part, sachez qu'il n'y a pas vraiment de ralentissement et que se mode de rafraichissement marche avec pygtk pour des interfaces graphiques. POur le reste je n'ai pas test�.

    Voila, j'ai n'ai qu'une chose a dire, Topic resolu et merci pour tout

  7. #7
    Membre Expert
    Homme Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 259
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 259
    Par d�faut
    J'ai survol� ton premier message, et j'ai l'impression que ton probl�me est d� � une mauvaise utilisation de gtk+ avec plusieurs threads. Tu essaies de modifier ton interface graphique depuis un thread diff�rent de celui faisant fonctionner la mainloop ? Si oui, as-tu lu, relu et encore relu http://library.gnome.org/devel/gdk/s...k-Threads.html ?

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. R�ponses: 3
    Dernier message: 23/04/2008, 15h35
  2. retarder l'affichage d'une iframe
    Par mattrou dans le forum G�n�ral JavaScript
    R�ponses: 13
    Dernier message: 02/08/2007, 14h04
  3. [Thread et Swing] Affichage retard�
    Par esteban dans le forum EDT/SwingWorker
    R�ponses: 2
    Dernier message: 06/07/2007, 14h19
  4. affichage et retard
    Par mumuri dans le forum C++
    R�ponses: 1
    Dernier message: 10/07/2006, 20h07
  5. R�ponses: 3
    Dernier message: 29/04/2006, 22h06

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