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 :

Tkinter: attendre qu'un bouton soit pressé


Sujet :

Tkinter Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 3
    Par défaut Tkinter: attendre qu'un bouton soit pressé
    Bonjour,

    Je début en python et je ne connais donc que quelques rudiments de Tkinter.

    Ma question est : Lorsque j'affiche une fenêtre tkinter avec 4 boutons (3 boutons exécutant une petite fonction et le quatrième une fonction globale). Je souhaite que, lorsque je lance la fonction globale (en appuyant sur le bouton 4) celle-ci s'exécute jusqu'à un stade ou elle attend que j'ai appuyé sur un autre bouton.

    j'illustre ça avec mon code :

    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
     
    from Tkinter import *
    window1 = Tk()
     
    def Un():
        global mavar
        mavar = 1
     
    def Deux():
        global mavar
        mavar = 2
     
    def Trois():
        global mavar
        mavar = 3
     
    def Fonction_globale():
        j = 1+1
        bablabla
        #On attend qu'un bouton ait été pressé sans que la fenêtre n'ait été fermée#
        if(mavar==2):
            blablabla
        else: blobloblo
     
    b1 = Button(window1, text='1', command=Un)
    b1.pack()
    b2 = Button(window1, text='2', command=Deux)
    b2.pack()
    b3 = Button(window1, text='3', command=Trois)
    b3.pack()
    b4 = Button(window1, text='4', command=Fonction_globale)
    b4.pack()
     
    root.mainloop()
    root.destroy()
    merci par avance!

    Cordialement,
    Napech

  2. #2
    Membre Expert Avatar de PauseKawa
    Homme Profil pro
    Technicien Help Desk, maintenance, réseau, système et +
    Inscrit en
    Juin 2006
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Help Desk, maintenance, réseau, système et +
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 725
    Par défaut
    Bonjour,

    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    #!/usr/bin/python
    # -*- coding: utf-8 -*-
    #
    #
    from Tkinter import *
     
    window1 = Tk()
    mavar=IntVar()
     
    def Un():
        mavar.set(1)
     
    def Deux():
        mavar.set(2)
     
    def Trois():
        mavar.set(3)
     
    def Fonction_globale():
        print ('Premiere partie')
        print ('Attente de mavar')    
        window1.wait_variable(mavar)
        print ('mavar a changer')  
        print('sa valeur est', mavar.get())
        print ('suite du code')
     
    b1 = Button(window1, text='1', command=Un)
    b1.pack()
    b2 = Button(window1, text='2', command=Deux)
    b2.pack()
    b3 = Button(window1, text='3', command=Trois)
    b3.pack()
    b4 = Button(window1, text='4', command=Fonction_globale)
    b4.pack()
     
    window1.mainloop()
    Sinon, dans le même esprit que le code d'hier

    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    #!/usr/bin/python
    # -*- coding: utf-8 -*-
    #
    #
    try:
        import Tkinter as Tk
    except:
        import tkinter as Tk
     
    def chgvar(newvalue):
        mavar.set(newvalue)
     
    def Fonction_globale():
        print ('Premiere partie')
        print ('Attente de mavar')    
        window1.wait_variable(mavar)
        print ('mavar a changer')  
        print('sa valeur est', mavar.get())
        print ('suite du code')
     
    window1 = Tk.Tk()
    mavar=Tk.IntVar()
    Tk.Button(window1, text='1', command= lambda: chgvar(1)).pack(side=Tk.LEFT)
    Tk.Button(window1, text='2', command= lambda: chgvar(2)).pack(side=Tk.LEFT)
    Tk.Button(window1, text='3', command= lambda: chgvar(3)).pack(side=Tk.LEFT)
    Tk.Button(window1, text='4', command=Fonction_globale).pack(side=Tk.LEFT)
    window1.mainloop()
    @+

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 3
    Par défaut
    Merci c'est précisément ce que je cherchais!

Discussions similaires

  1. [Tkinter] Copier un texte dans le presse-papier
    Par fire.stone dans le forum Tkinter
    Réponses: 3
    Dernier message: 01/05/2018, 10h22
  2. [AC-2007] Attente qu'un bouton soit pressé ?
    Par AlainL dans le forum VBA Access
    Réponses: 11
    Dernier message: 31/12/2009, 12h01
  3. [C#] Attendre que l'application soit lancée ?
    Par choas dans le forum Windows Forms
    Réponses: 5
    Dernier message: 09/05/2006, 21h39
  4. Attendre qu'un thread soit suspendu !
    Par pi05 dans le forum MFC
    Réponses: 1
    Dernier message: 24/06/2005, 10h58
  5. [API Windows]Attendre qu'une fenetre soit dessinee
    Par VoLc0m dans le forum Windows
    Réponses: 21
    Dernier message: 13/05/2005, 15h11

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