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 :

[Débutant] Problème bouton


Sujet :

Tkinter Python

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2017
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2017
    Messages : 2
    Points : 1
    Points
    1
    Par défaut [Débutant] Problème bouton
    Bonjour,

    Je suis débutant en python et j'ai comme projet de construire un Démineur avec tkinter.

    Sur ma fenêtre j'ai créé deux boutons, un pour quitter et un autre qui a pour but de créer la grille en fonction d'un paramètre enregistré dans un widget Entry.

    J'aimerais que quand on clique le bouton la grille se construise. Or ici la fonction qui récupère le Entry et crée la grille en fonction de ce param est activée avant l'appui du bouton. Et même ensuite quand on clique ce bouton rien ne se passe (je peux voir ça grace au print que j'ai placé dans la fonction).

    Je ne comprends pas pourquoi cette fonction "s'appelle toute seule" alors qu'elle n'est normalement activée que lors du clic sur le bouton.

    Je vous remercie par avance pour votre aide et vos conseils, vous trouverez ci-dessous la partie de code que j'ai commencé à rédiger.

    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
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    from Tkinter import * 
     
    class GAME(Frame):
     
        def __init__(self, parent):
            Frame.__init__(self, parent)         
            self.parent = parent
            self.initUI()
     
        def initUI(self):
     
            self.parent.title("DEMINEUR")
            self.pack(fill=BOTH, expand=True)
     
            FrMenu = Frame(self)
            FrMenu.pack(side = TOP)
     
            FrM1 = Frame(FrMenu)
            FrM1.pack(side = LEFT)
     
            FrM10 = Frame(FrM1)
            FrM10.pack(fill=X, pady = 5)
     
            FrM11 = Frame(FrM1)
            FrM11.pack(fill=X)
     
            FrM12 = Frame(FrM1)
            FrM12.pack(fill=X)
     
            FrM2 = Frame(FrMenu)
            FrM2.pack(side = LEFT, padx=20, pady=5)
     
            FrM3 = Frame(FrMenu)#, relief=SUNKEN)
            FrM3.pack(side = LEFT, padx=10, pady=10)
     
            separator = Frame(self, relief=SUNKEN, height = 2)
            separator.pack(fill=X, padx = 10, pady = 5) 
     
            global FrGame
            FrGame = Frame(self, relief=SUNKEN, height = 250)
            FrGame.pack(side = BOTTOM)
     
            lbl1 = Label(FrM11, text="Taille du plateau : ")
            lbl1.pack(side=LEFT, padx=5, pady=0)           
     
            global entry1
            entry1 = Entry(FrM11, width = 3)
            entry1.pack(side =RIGHT, padx=5)#, expand=True)
            entry1.insert(5, 10)
     
            lbl2 = Label(FrM12, text="Nombre de mines : ")
            lbl2.pack(side=LEFT, padx=5, pady=5)  
     
            lblScore = Label(FrM3, text="Score : ")
            lblScore.pack(fill = X, padx = 50)      
     
            global entry2
            entry2 = Entry(FrM12, width = 3)
            entry2.pack(side =RIGHT, padx=5)#, expand=True)
            entry2.insert(5, "20")
     
            okButton = Button(FrM2, text="OK", command=BoutonOK())
            okButton.pack(fill=X)
            QuitButton = Button(FrM2, text="Quitter", command=self.quit)
            QuitButton.pack(fill=X)
     
     
     
    def BoutonOK():
    	global taille
    	taille = int(entry1.get())
    	print taille
    	for ligne in range(taille):
    		for colonne in range(taille):
    			Button(FrGame, text='%s%s' % (ligne, colonne), borderwidth=1, height = 2, width = 2).grid(row=ligne, column=colonne)
     
     
     
    root = Tk()
    app = GAME(root)
    root.mainloop()

  2. #2
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2017
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2017
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Je viens de trouver...

    Il faut remplacer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    okButton = Button(FrM2, text="OK", command=BoutonOK())
    Par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    okButton = Button(FrM2, text="OK", command=BoutonOK)

Discussions similaires

  1. Problème bouton et startDrag (débutant)
    Par tatouille9 dans le forum ActionScript 1 & ActionScript 2
    Réponses: 4
    Dernier message: 26/01/2008, 06h07
  2. Débutant - Problème de boutons
    Par Axvier21 dans le forum Windows Forms
    Réponses: 1
    Dernier message: 14/02/2007, 17h45
  3. Réponses: 1
    Dernier message: 09/05/2006, 15h02
  4. [Débutant] Problème pour écrire dans un bouton
    Par Paulinho dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 06/01/2006, 11h45
  5. Réponses: 11
    Dernier message: 02/09/2003, 14h20

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