Функция закрытия окна в Ткинтере - PullRequest
15 голосов
/ 04 ноября 2011
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 функцию закрывать окно?

Ответы [ 3 ]

47 голосов
/ 04 ноября 2011
def quit(self):
    self.root.destroy()

Добавьте скобки после destroy для вызова метода.

Когда вы используете command=self.root.destroy, вы передаете метод в Tkinter.Button без круглых скобок, потому что вы хотите Tkinter.Button сохранить метод для будущего вызова, а не вызывать его сразу после создания кнопки. .

Но когда вы определяете метод quit, вам нужно вызвать self.root.destroy() в теле метода, потому что к тому времени метод уже был вызван.

2 голосов
/ 12 ноября 2015
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()
1 голос
/ 25 июля 2016
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 при нажатии кнопки выхода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...