2017-08-19 317 views
1

我想用兩個按鈕生成一個窗口,這兩個窗口都會執行一個函數,然後關閉窗口。但是,我似乎無法讓窗戶關閉。我已經嘗試了幾次按照類似問題的答案重寫函數,但每次都會出現錯誤。任何幫助將不勝感激!如何關閉Tkinter窗口

import tkinter as tk 


class test: 
    def __init__(self, root): 
     self.text = tk.Label(root, text = 'Question') 
     self.text.pack(side = 'top') 
     self.button1 = tk.Button(root, text = 'Yes', command = self.write_right, width = 15) 
     self.button1.pack(side='left') 
     self.button2 = tk.Button(root, text = 'No', command = self.write_wrong, width = 15) 
     self.button2.pack(side='right') 
    def write_right(self): 
     self.root.destroy() 
    def write_wrong(self): 
     self.root.destroy() 
box = tk.Tk() 
functionality = test(box) 
box.mainloop() 

回答

2

添加self.root = root可以幫助:

import tkinter as tk 

class test: 
    def __init__(self, root): 
     self.root = root 
     self.text = tk.Label(root, text = 'Question') 
     self.text.pack(side = 'top') 
     self.button1 = tk.Button(root, text = 'Yes', command = self.write_right, width = 15) 
     self.button1.pack(side='left') 
     self.button2 = tk.Button(root, text = 'No', command = self.write_wrong, width = 15) 
     self.button2.pack(side='right') 
    def write_right(self): 
     self.root.destroy() 
    def write_wrong(self): 
     self.root.destroy() 
box = tk.Tk() 
functionality = test(box) 
box.mainloop()