Why Does Calling Entry.get() Give Me "invalid Command Name"?
This is my code: def ask(what,why): root=Tk() root.title(why) label=Label(root,text=what) label.pack() entry=Entry(root) entry.pack() button=Button(root
Solution 1:
When you press the button, the application is destroyed, the mainloop
ends, and you try to return the contents of an Entry
widget... in an application that was destroyed. You need to save the contents of entry
before destroying the application. Instead of hacking your way through this, it would be much better to set up a Tkinter application in the proper way, such as with an object-oriented approach.
class App:
# 'what' and 'why' should probably be fetched in a different way, suitable to the app
def __init__(self, parent, what, why):
self.parent = parent
self.parent.title(why)
self.label = Label(self.parent, text=what)
self.label.pack()
self.entry = Entry(self.parent)
self.entry.pack()
self.button = Button(parent, text='OK', command=self.use_entry)
self.button.pack()
def use_entry(self):
contents = self.entry.get()
# do stuff with contents
self.parent.destroy() # if you must
root = Tk()
app = App(root, what, why)
root.mainloop()
Post a Comment for "Why Does Calling Entry.get() Give Me "invalid Command Name"?"