ユーザーが名前を入力した後で入力フィールドを削除しようとしていますが、次のコードを使用するとエラーが発生します。
from Tkinter import *
from random import randrange
class Application(Frame):
def __init__(self):
Frame.__init__(self)
self.grid()
self.nameEntry = Entry(self)
self.nameEntry.grid(row=0, column=0, columnspan=4)
self.setupBtn = Button(self, text = "Generate", command=self.setup)
self.setupBtn.grid(row=4, column=0, columnspan=4)
self.preText = Text(self, width=50, height=3, wrap=WORD)
self.preText.grid(row=6, column=0, columnspan=4)
self.preText.delete(0.0, END)
self.preText.insert(0.0, "If you enter your name, i'll give you a random number each time!")
self.statusLbl = Label(self, text="What's your name?", bg="white")
self.statusLbl.grid(row=7, column=0, columnspan=4, sticky=W)
def setup(self):
name = self.nameEntry.get()
if name != "":
self.nameEntry.destroy()
self.setupBtn = Button(self, text = "Roll Again", command=self.setup)
self.setupBtn.grid(row=4, column=0, columnspan=4)
randomNumber = randrange(10, 100)
if name == "":
message = "Your name please!"
self.preText.delete(0.0, END)
self.preText.insert(0.0, message)
else:
self.preText.delete(0.0, END)
self.preText.insert(0.0, str(randomNumber))
Application().mainloop()
エラーは次のとおりです。
Tkinterコールバックトレースバックの例外(最後の最後の呼び出し):
File "C:\Python27\lib\lib-tk\Tkinter.py", line 1410, in __call__ return self.func(*args) File "C:/Users/User/Desktop/app.py", line 25, in setup name = self.nameEntry.get() File "C:\Python27\lib\lib-tk\Tkinter.py", line 2391, in get return self.tk.call(self._w, 'get') TclError: invalid command name ".45073096L.45073736L"
ユーザーが名前を入力してロールボタンをクリックした後、名前入力フィールドを削除したいと思います。しかし、ローリングする代わりに、そのエラーが発生します。
誰かが私を助けることができますか?私の知る限り、name = self.nameEntry.get()
名前に保存するために使用されているため、削除すると問題が発生します。回避策はありますか?私はあまり上手ではないので、どうすればいいのかわかりません。