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

Python Discussion :

Débutant cherche explications sur Tkinter


Sujet :

Python

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Août 2014
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Eure et Loir (Centre)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2014
    Messages : 8
    Points : 9
    Points
    9
    Par défaut Débutant cherche explications sur Tkinter
    Bonjour,

    Je débute avec python et je ne comprend pas la réaction de mon code (très simple).

    Spécification :
    A partir d'un bouton de la fenêtre principale, ouvrir un deuxième fenêtre contenant deux boutons, chacun associé à une fonction.

    Problèmes :
    - lorsque j'ouvre la seconde fenêtre les deux fonctions associées à mes boutons sont exécutées SANS appuyer sur ces boutons (Bof)
    - lorsque j’appuie sur ces boutons il ne se passe rien (re-bof)

    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
    36
    37
    38
    39
    40
    41
    42
    43
    from tkinter import *
     
    # Suivant que l'on exécute ce script sous Python 3 ou Python 2,
    try:
        from tkinter import *      # module Tkinter pour Python 3
    except:
        from Tkinter import *      # module Tkinter pour Python 2
     
    class FenEquipe(Toplevel):
        "Fenêtre satellite (modale) contenant deux boutons"
        def __init__(self,colorLoc,colorVis, **Arguments):
            Toplevel.__init__(self, **Arguments)
            self.geometry("250x200+100+240")
            self.boutonLoc= Button(self,text="locaux",bg=colorLoc,command=self.selJoueur('Loc'))
            self.boutonLoc.pack(side=BOTTOM)
            self.boutonVis= Button(self,text="Visiteurs",bg=colorVis,command=self.selJoueur('Vis'))
            self.boutonVis.pack(side=BOTTOM)
     
     
     
        def selJoueur (self,equipe) :
            print ('Equipe ='+ equipe)
            if equipe == 'Loc' :
                print ("locaux")
            else :
                print ("visiteurs")
     
    # ------------------------ MAIN --------------------------------        
     
    def fenetre2 ():
        fenChoixEquipe = FenEquipe (colorLoc="Red",colorVis="Yellow")
     
     
    fen = Tk()
    largeur, hauteur = (500,250)
     
    canevas = Canvas(fen,bg='dark grey',height=hauteur,width=largeur)
    canevas.pack()
     
    boutonFenetre2 = Button(fen,text="Choisir",command=fenetre2)
    boutonFenetre2.pack(side=BOTTOM)
     
    fen.mainloop()
    +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

    Je soupçonne une ... grosse comme moi, mais je ne trouve pas, alors si quelqu'un veut bien m'expliquer,


    Par avance merci

  2. #2
    Membre expérimenté
    Profil pro
    Développeur en systèmes embarqués retraité
    Inscrit en
    Mars 2006
    Messages
    952
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2006
    Messages : 952
    Points : 1 351
    Points
    1 351
    Par défaut
    Hello,

    C'est un classique, tu as défini tes commandes en les exécutant car tu as mis les paramètres et les parenthèses. il faut juste les pointeurs de fonction. Quelque chose du genre command=function au line de command=function(param1, param2...) S'il y a des paramètres, il faut lire le chapitre python consacré aux fonctions lambda.

    A+

    Pfeuh

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Août 2014
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Eure et Loir (Centre)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2014
    Messages : 8
    Points : 9
    Points
    9
    Par défaut
    Merci pour l'info, je me replonge dans la doc et je vous tiens au courant

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Août 2014
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Eure et Loir (Centre)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2014
    Messages : 8
    Points : 9
    Points
    9
    Par défaut
    Merci pfeuh

    Suivant tes conseils, je me suis documenté sur l'expression lambda et maintenant mon code fonctionne comme je le souhaite. Pour info je le joins.
    Code python : 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
    37
    38
    39
    40
    41
    42
    43
    44
     
     
     
    # Suivant que l'on exécute ce script sous Python 3 ou Python 2,
    try:
        from tkinter import *      # module Tkinter pour Python 3
    except:
        from Tkinter import *      # module Tkinter pour Python 2
     
    class FenEquipe(Toplevel):
        "Fenêtre satellite contenant deux boutons"
        def __init__(self,colorLoc,colorVis, **Arguments):
            Toplevel.__init__(self, **Arguments)
            self.geometry("250x200+100+240")
            self.boutonLoc= Button(self,text="locaux",bg=colorLoc,command=lambda arg ='Loc': self.selJoueur(arg))
            self.boutonLoc.pack(side=BOTTOM)
            self.boutonVis= Button(self,text="Visiteurs",bg=colorVis,command=lambda arg ='Vis': self.selJoueur(arg))
            self.boutonVis.pack(side=BOTTOM)
     
     
     
        def selJoueur (self,equipe) :
            print ('Equipe ='+ equipe)
            if equipe == 'Loc' :
                print ("locaux")
            else :
                print ("visiteurs")
     
    # ------------------------ MAIN --------------------------------        
     
    def fenetre2 ():
        fenChoixEquipe = FenEquipe (colorLoc="Red",colorVis="Yellow")
     
     
    fen = Tk()
    largeur, hauteur = (500,250)
     
    canevas = Canvas(fen,bg='dark grey',height=hauteur,width=largeur)
    canevas.pack()
     
    boutonFenetre2 = Button(fen,text="Choisir",command=fenetre2)
    boutonFenetre2.pack(side=BOTTOM)
     
    fen.mainloop()

    Merci pour tout, me reste plus qu'à finir ... Mais ça m’étonnerai que je ne revienne pas poser des questions ... donc merci par avance !

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

Discussions similaires

  1. [Toutes versions] cherche explication sur declaration
    Par patricktoulon dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 15/09/2010, 16h36
  2. Réponses: 17
    Dernier message: 11/11/2008, 13h17
  3. [débutant] cherche doc sur BO Data Integrator
    Par krimo22 dans le forum BODI
    Réponses: 1
    Dernier message: 19/06/2008, 17h27
  4. Débutant : cherche explications environnement delphi 2005
    Par tremeur53 dans le forum Débuter
    Réponses: 3
    Dernier message: 22/10/2006, 19h03
  5. cherche explication sur du code
    Par abdoulzak dans le forum Langage
    Réponses: 1
    Dernier message: 06/07/2006, 11h23

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