我使用Python Tkinter创建了一个GUI。一切似乎都很好。我已在“菜单”选项卡中添加了几个选项。在“文件”部分中,我添加了一项功能,通过单击“退出”按钮(虽然不是按钮,而是菜单选项)来退出GUI。这是我编写的代码。
from tkinter import *
from tkinter import filedialog, RIGHT
class Filedialog:
def directory(self):
content = filedialog.askdirectory()
return content
class Main(Frame):
def __init__(self):
self.opening_times = 0
self.current_image = 0
self.images = []
self.root = Tk()
self.root.title("Y")
self.root.configure(bg='pale turquoise')
self.root.geometry("800x800")
self.frame = Frame(self.root)
self.frame.pack(side=RIGHT)
self.frame = Frame.__init__(self, self.root)
self.widgets()
self.root.mainloop()
def widgets(self):
self.menu = Menu(self.root)
self.root.config(menu=self.menu)
self.filemenu = Menu(self.menu, tearoff=False)
self.menu.add_cascade(label="File", menu=self.filemenu)
self.filemenu.add_separator()
self.filemenu.add_command(label="Save")
self.filemenu.add_separator()
self.filemenu.add_command(label="Exit", command=self.onExit)
#self.editmenu = Menu(self.menu, tearoff=0)
#self.menu.add_cascade(label='Edit', menu=self.editmenu)
#self.editmenu.add_command(label="Undo")
#self.editmenu.add_command(label="Redo")
def onExit(self):
self.root.quit()
if __name__ == "__main__":
Main()
我几乎成功了。但是,当我单击出口时,就会出现问题。该函数执行其必需的操作。但是GUI窗口是未关闭,也在那里冻结了。直到我强迫窗口从外部关闭之前,根本没有任何响应。
我也尝试做:
self.quit()
/
self.exit()
但是响应与GUI冻结相同,不允许我执行任何其他活动。我必须关闭完整程序才能再次访问。
至少我没有得到错误,才知道出了什么问题。
请帮助我找出问题所在/解决此问题。
谢谢您的时间。
使用destroy()
方法代替quit
。
让我更正您的代码
您必须使用的方法是destroy
。例如: