Функция закрытия окна в Tkinter
import tkinter
class App():
def __init__(self):
self.root = Tkinter.Tk()
button = Tkinter.Button(self.root, text = 'root quit', command=self.quit)
button.pack()
self.root.mainloop()
def quit(self):
self.root.destroy
app = App()
Как я могу заставить мою функцию quit
закрыть окно?
Ответы
Ответ 1
def quit(self):
self.root.destroy()
Добавьте круглые скобки после destroy
, чтобы вызвать метод.
Когда вы используете command=self.root.destroy
, вы передаете метод Tkinter.Button
без круглых скобок, потому что вы хотите, чтобы Tkinter.Button
сохранял метод для будущего вызова, а не сразу его вызывать при создании кнопки.
Но когда вы определяете метод quit
, вам нужно вызвать self.root.destroy()
в теле метода, потому что к тому времени был вызван метод.
Ответ 2
class App():
def __init__(self):
self.root = Tkinter.Tk()
button = Tkinter.Button(self.root, text = 'root quit', command=self.quit)
button.pack()
self.root.mainloop()
def quit(self):
self.root.destroy()
app = App()
Ответ 3
def exit(self):
self.frame.destroy()
exit_btn=Button(self.frame,text='Exit',command=self.exit,activebackground='grey',activeforeground='#AB78F1',bg='#58F0AB',highlightcolor='red',padx='10px',pady='3px')
exit_btn.place(relx=0.45,rely=0.35)
Это сработало для меня, чтобы уничтожить рамку Tkinter при нажатии кнопки выхода.