【问题标题】:Tkinter Quit button make exe not respondingTkinter 退出按钮使 exe 没有响应
【发布时间】:2013-03-14 16:33:38
【问题描述】:

我用 Tkinter 创建了一个窗口。当我单击退出按钮时,Windows 显示 exe 停止工作。谁能告诉我为什么会这样?我认为问题是self.quit,但我不知道原因。

这里是代码。

from Tkinter import *
class App(Frame):
    def __init__(self, master = None):
        Frame.__init__(self, master)
        self.pack()
        self.createWidgets()
    def createWidgets(self):
        self.Quit = Button(self, text = "QUIT", command = self.quit)
        self.Quit.pack(side = LEFT)

root = Tk()
app =App(master = root)
app.mainloop()

【问题讨论】:

  • 我不知道这些是否会有所帮助,但你不需要倒数第二行中的master = ,并尝试将命令放在 lambda 表达式中(lambda: self.quit)。这在过去帮助我解决了一些奇怪的错误。
  • @ValekHalfHeart:lambda 不是必需的,您关于“奇怪错误”的陈述给人的印象是 Tkinter 是不确定的或不稳定的,但事实并非如此。 Lambda 并不神奇,也无法修复神秘错误。
  • @BryanOakley 这不值得争论,但它确实解决了我的错误。不过,我对 Tkinter 不是很有经验。如果您使用错误,完全可靠的软件仍然会产生“奇怪的错误”。

标签: python tkinter


【解决方案1】:

在退出按钮中,您正在调用Framequit() 方法。取而代之的是,您需要在根元素上调用 destroy() 才能正确完成主循环。

self.Quit = Button(self, text = "QUIT", command = self.master.destroy)

【讨论】:

  • 谢谢,我添加了一个root.destory()来完成主循环。
猜你喜欢
  • 1970-01-01
  • 2022-01-19
  • 1970-01-01
  • 1970-01-01
  • 2020-05-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多