我正在尝试以下有关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()
执行时,我得到一个这样的框架:
但退出按钮在哪里?
答案 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找到更多信息。