我试图按下取消按钮会取消程序。
class PayrollSummary:
def __init__(self):
window = Tk()
window.title("Employee Payroll")
btCancel = Button(frame1, text = "Cancel", command = self.processCancel)
def processCancel(self):
self.destroy()
这是我收到的错误消息:
AttributeError:“ PayrollSummary”对象没有属性“ destroy”
答案 0 :(得分:3)
如果要销毁tkinter GUI,必须在根窗口上调用destroy
。根据收到的错误,您没有在根窗口上调用destroy
。您显然是在其他对象上调用它。
答案 1 :(得分:2)
self引用“ PayrollSummary”,而不是用Tk()初始化的tkinter对话框/窗口。
答案 2 :(得分:0)
由于您没有在class PayrollSummary
中继承Tk,因此self.destroy()不能仅在Object上运行,它是Tk
的一种方法。
如果要使用销毁窗口,则必须继承Tk
例如:
class PayrollSummary(Tk):
def __init__(self, *ags, **kw):
super(PayrollSummary, self).__init__(*ags, **kw)
self.title("Employee Payroll")
btCancel = Button(self, text = "Cancel", command = self.processCancel)
btCancel.pack()
def processCancel(self):
self.destroy()
或者如果您不想继承Tk
class PayrollSummary:
def __init__(self):
self.window = Tk()
self.window.title("Employee Payroll")
btCancel = Button(self.window, text = "Cancel", command = self.processCancel)
btCancel.pack()
def processCancel(self):
self.window.destroy()