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

Tkinter Python Discussion :

Instaurer un délai au cochage d'un Checkbutton


Sujet :

Tkinter Python

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Mai 2009
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Instaurer un délai au cochage d'un Checkbutton
    Bonsoir,

    J'utilise un checkbutton qui, lorsqu'il est activé, appelle une fonction qui se relance régulièrement (avec un after() ) tant que le checkbutton reste coché.

    Problème : si, entre deux appels de fonction, le bouton est décoché/recoché suffisamment rapidement, la fonction se lance plusieurs fois, ce qui évidemment ne donne plus du tout le résultat escompté.

    J'aimerais donc savoir comment faire pour instaurer un délai qui empêche de cocher ou décocher le checkbutton avant x millisecondes après qu'il est été coché ou décoché.

    J'ai cherché dans la liste des options associées à checkbutton, et il ne me semble pas qu'il y en ai une pour faire ça, et après quelques essais (désastreux), je suis contraint de m'en remettre à vous.

    Merci d'avance de votre réponse.

  2. #2
    Membre averti
    Inscrit en
    Janvier 2007
    Messages
    329
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 329
    Points : 366
    Points
    366
    Par défaut
    Salut,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    import Tkinter
     
    class MonProg(Tkinter.Tk):
        def __init__(self):
            Tkinter.Tk.__init__(self)
            self.checkb = Tkinter.IntVar()
            Tkinter.Checkbutton(self, text="Cliquer ici", variable=self.checkb).pack(padx=15, pady=15)
            self.after(500, self.match)
        def match(self):
            if self.checkb.get() != 0:
                print "Hello"
            self.after(500, self.match)
     
    if __name__ == '__main__':
        MonProg().mainloop()
    Ça répond à ton problème ?


    Si tu veux vraiment désactiver ton checkbutton, fais un "tonbouton.configure(state=Tkinter.DISABLED)", puis lance un "tonbouton.configure(state=Tkinter.NORMAL)" au bout de x millisecondes avec un after().

    -

  3. #3
    Nouveau Candidat au Club
    Inscrit en
    Mai 2009
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Bonjour,

    En effet, je me suis bien pris la tête alors que la solution était plutôt simple... ça m'apprendra à associer directement le lancement de ma fonction au cochage/décochage du bouton u_u

    En tout cas, j'ai (enfin!) pu complètement terminer mon programme, merci beaucoup pour l'aide

Discussions similaires

  1. Délai d'expiration des cookies
    Par Sylvain James dans le forum XMLRAD
    Réponses: 40
    Dernier message: 22/03/2006, 10h22
  2. expiration du délai pour une page
    Par yahia dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 21/06/2004, 12h03
  3. Connexion ADO et SQL Server : délai d'execution expiré.
    Par denrette dans le forum Bases de données
    Réponses: 2
    Dernier message: 24/02/2004, 09h00
  4. [CDD] Renouvellement Délai de carence
    Par seb.49 dans le forum Droit du travail
    Réponses: 4
    Dernier message: 11/02/2004, 08h32
  5. Délai d'attente expiré
    Par amiral thrawn dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 15/04/2003, 12h04

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