Tinker窗口在单击“退出”时未响应

问题描述 投票:0回答:1

我使用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冻结相同,不允许我执行任何其他活动。我必须关闭完整程序才能再次访问。

至少我没有得到错误,才知道出了什么问题。

请帮助我找出问题所在/解决此问题。

谢谢您的时间。

python python-3.x user-interface tkinter
1个回答
1
投票

使用destroy()方法代替quit


1
投票

让我更正您的代码


1
投票

您必须使用的方法是destroy。例如:

© www.soinside.com 2019 - 2024. All rights reserved.