2017-10-09 8 views
0
game_entry = Entry(gs, width = 10, bg = 'white') 
game_entry.grid(row=4, column = 0, sticky=W) 
ip = game_entry.get() 
part1 = partial(click2, ip) 
Button(gs, text = "Submit", width = 6, command = part1, bg='white').grid(row=5, column = 0, sticky=W) 
output = Text(gs, width = 25, height = 1, wrap=WORD,bg = 'white') 
output.grid(row = 7,column=0,sticky=W) 

def click2(a): 
    if a == 'a': 
     print('hello') 

Si je clique sur le bouton et la zone de saisie dit « a » (sans les guillemets), rien est imprimé et si je définis click2 comme:.get() ne fonctionne pas correctement avec des boîtes d'entrée dans tkinter

def click2(a): 
    if a != 'a': 
     print('hello') 

et de taper 'a' (encore une fois, sans les guillemets), il l'imprime même si ce n'est pas le cas.

Est-ce que quelqu'un sait pourquoi?

Merci

Répondre

2

Le problème est que vous obtenez la valeur du widget d'entrée sur une milliseconde après avoir créé le widget d'entrée. Vous devez attendre que l'utilisateur clique sur le bouton avant d'appeler la méthode .get().

+0

Je vais essayer ce merci – Daniel