我有我的Tkinter窗口中的按钮,单击该按钮时,需要调用两个功能:一个.get()
存储输入框值和.destroy()
所以窗口关闭按钮时被按下。Tkinter的.destroy()按钮会导致错误时,在功能
我必须做一些错误的,因为我是否把.destroy()
在我的分组功能与.get()
或将.destroy()
类似按钮的唯一命令,我得到这个错误:
AttributeError: 'GuardianLocator' object has no attribute 'frame'
我相信我的代码是几乎相同,以在这个网站,所以我不知道为什么.destroy()
不工作的其他答案...
from tkinter import *
class GuardianLocator:
def __init__(self, master):
self._name = ""
frame = Frame(master)
frame.grid()
master.title("GUARDIAN LOCATOR")
self.locator_label = Label(frame, text="Which Sailor Guardian are you looking for?", width=40, height=2)
self.locator_label.grid()
self.entry = Entry(frame)
self.entry.grid()
self.button1 = Button(frame, text="Search", command=self.guardian_name, pady=2)
self.button1.grid()
def guardian_name(self):
self._name = self.entry.get()
self.frame.destroy()
return self.entry.get()
编辑
当我做从答案,self.frame推荐的变化,程序运行,但是当我点击按钮,我得到这个错误 -
Traceback (most recent call last):
File "C:\Python34\lib\tkinter\__init__.py", line 1482, in __call__
return self.func(*args)
File "C:\Users\david\PycharmProjects\Sailor Moon Hunt\guardian_locator.py", line 25, in guardian_name
return self.entry.get()
File "C:\Python34\lib\tkinter\__init__.py", line 2484, in get
return self.tk.call(self._w, 'get')
_tkinter.TclError: invalid command name ".45213328.45795632"
这似乎是指获得( )调用,但是在我进行self.frame更改之前,它工作正常。有谁知道那个错误是什么意思?
你在哪里调用你的'guardian_name'函数? – 2014-12-03 22:09:18
只在按钮内部 'self.button1 = Button(self.frame,text =“Search”,command = self.guardian_name,pady = 2)' – djohnson129 2014-12-03 22:21:53
该窗口正在另一个文件中调用: 'root = Tk() locator = guardian_locator.GuardianLocator(root) root.mainloop()' – djohnson129 2014-12-03 22:24:04