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 :

Executer fonction en decalage


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 Executer fonction en decalage
    Bonjour a tous, je realise un logiciel qui necessite des threads, le probleme c'est que celui-ci doit influencer mon interface graphique, apres de nombreux teste et de recherche, j'ai remarqué que la fonction qui modifie mon interface graphique ne devait pas s'éxécuté en meme temps que le thread. Enfin je m'explique, le thread recoit une requete et celui ci appelle la fonction qui modifie l'interface, si je laisse tout a la suite, sa freeze, en revanche j'ai esayé le gobjet_timeout_add(time, fonction) sa marche parfaitement le probleme c'est qu'avec un appel comme sa, la fonction se repete sans arret avec l'interval que je lui est donné.

    N'auriez vous pas une commande, me permettant par exemple d'appeller la fonction au bout de 2 sec apres l'invocation de celle ci.

    Sachez qu'avec time.sleep(x) cela ne marche pas car mon thread s'arrete aussi et lorsque sa reprend j'en reviens au meme point, mon interface freeze.

    Faut juste que la fonction soit executé genre meme 1 seconde apres sont appel.

    Merci d'avance et bonne continuation...

  2. #2
    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
    g_idle_add t'irait peut être plus que g_timeout_add ? Pour choisir entre "la fonction se répète"/"la fonction ne se répète pas", il suffit de renvoyer le booléen approprié à la fin de ton callback (TRUE/FALSE).

  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 te remercie beaucoup teuf, j'avais deja essayé les deux fonctions, avec g_idle_add ba c'etait pire car des que c'etait inactif il me floodait ma fonction, mais du coup j'ai pris le timeout_add et j'ai retourné a la fin de la fonction qui est appellé false et sa marche parfaitement.

    Merci beaucoup et bonne continuation...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Javascript] execution fonction php
    Par marion782 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 01/02/2006, 22h58
  2. [VBA-E]Executer fonction VBA sur Excel sans activer la macro
    Par marie10 dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 19/01/2006, 14h34
  3. executer fonction automatiquement
    Par zamanika dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 05/11/2004, 13h42
  4. Valider avant execution fonction
    Par jeff37 dans le forum ASP
    Réponses: 3
    Dernier message: 08/09/2004, 12h39
  5. [C#] MDI Execution fonction sur fille a partir de la mere
    Par alex57 dans le forum Windows Forms
    Réponses: 2
    Dernier message: 27/07/2004, 10h00

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