2017-10-09 7 views
0

J'ai essayé de faire pack_forget() mais je n'ai aucune idée de le placer dans la fonction « finale »Oublier une étiquette, puis la sortie d'une nouvelle valeur pour cette étiquette après chaque pression du bouton dans tkinter

userinput = Entry() 
userinput.pack(side=TOP) 
text = str(userinput) 


def final(): 
    choices = ["It is certain", "It is decidedly so", "Without a doubt", "Yes definitely", "You may rely on it", "As I see it, yes", 
     "Most likely", "Outlook good", "Yes", 'Signs point to yes', "Reply hazy try again", "Ask again later", "Better not tell you now", 
     "Cannot predict now", "Concentrate and ask again", "Dont count on it", "My reply is no", "My sources say no", "Outlook not good", 'Very doubful'] 

    if len(text) > 0 : 
     response = Label(root, text = random.choice(choices), bg = "snow") 
     response.pack(side=TOP) 




decision = Button(root, text = "Go", command = final) 
decision.configure(font=(28)) 
decision.pack(side=TOP) 

Je crois que le pack.forget() doit être à l'intérieur de la fonction (au moins pour autant que je sache), cependant, je n'ai aucune idée de comment oublier l'étiquette de réponse après chaque appui sur un bouton et lui donner une nouvelle réponse.

+0

Votre 'while TRUE' ne sera jamais sortie depuis' Text' ne changera jamais à l'intérieur de la boucle. –

+0

@BrianOakley J'ai enlevé la boucle et le problème reste –

Répondre

0

Vous n'avez pas réellement besoin d'utiliser .pack_forget() vous pouvez utiliser .configure() sur la place étiquette, quelque chose comme ci-dessous:

from tkinter import * 
import random 

class App: 
    def __init__(self, root): 
     self.root = root 
     self.choices = ["It is certain", "It is decidedly so", "Without a doubt", "Yes definitely", "You may rely on it", "As I see it, yes", "Most likely", "Outlook good", "Yes", 'Signs point to yes', "Reply hazy try again", "Ask again later", "Better not tell you now","Cannot predict now", "Concentrate and ask again", "Dont count on it", "My reply is no", "My sources say no", "Outlook not good", 'Very doubful'] 
     self.label = Label(self.root) 
     self.button = Button(self.root, text="Ok", command=self.shuffle) 
     self.label.pack() 
     self.button.pack() 
    def shuffle(self): 
     self.label.configure(text=random.choice(self.choices)) 

root = Tk() 
App(root) 
root.mainloop()