为什么不显示退出按钮

时间:2018-03-23 02:50:37

标签: python tkinter

我正在尝试以下有关python的代码:

import tkinter
from tkinter import *
from tkinter.messagebox import askokcancel

class Quitter(Frame):
    def _init__(self,parent=None):
        Frame.__init__(self,parent)
        self.pack()
        widget=Button(self,text='Quit',command=self.quit)
        widget.pack(side=TOP,expand=YES,fill=BOTH)
    def quit(self):
        ans=askokcancel('Verify exit',"You want to quit?")
        if ans:Frame.quit(self)

if __name__=='__main__':Quitter().mainloop()

执行时,我得到一个这样的框架:

enter image description here

但退出按钮在哪里?

1 个答案:

答案 0 :(得分:0)

正如评论中所提到的,__init__()中有一个拼写错误 此外,您可能希望按如下方式构建应用程序:(1)不在主命名空间中导入tkinter,(2)跟踪tk.Frame类中的根/父,并使用root.destroy() i / o quit()

import tkinter as tk
from tkinter.messagebox import askokcancel

class Quitter(tk.Frame):
    def __init__(self, parent):
        super().__init__(parent)
        self.parent = parent
        self.widget = tk.Button(self.parent, text='Quit', command=self.quit)
        self.widget.pack()

    def quit(self):
        ans = askokcancel('Verify exit', "You want to quit?")
        if ans: 
            self.parent.destroy()

if __name__ == "__main__":
    root = tk.Tk()
    Quitter(root)
    root.mainloop()

您可以在this thread找到更多信息。