gpt4 book ai didi

python - 在 python 中退出主循环

转载 作者:太空狗 更新时间:2023-10-30 00:56:46 25 4
gpt4 key购买 nike

虽然我是一种对其他语言有经验的程序员,但我对 Python 还是个新手。我一直在尝试做一件非常简单的事情,就是在启动后退出主循环。看来是大事了。下面的程序只生成一系列事件。一切似乎都正常,但我无法关闭最后一个窗口...我该怎么办?

from Tkinter import *

root=Tk()
theMainFrame=Frame(root)
theMainFrame.pack()



class CloseAfterFinishFrame1(Frame): # Diz que herda os parametros de Frame
def __init__(self):
Frame.__init__(self,theMainFrame) # Inicializa com os parametros acima!!
Label(self,text="Hi",font=("Arial", 16)).pack()
button = Button (self, text = "I am ready", command=self.CloseWindow,font=("Arial", 12))
button.pack()
self.pack()

def CloseWindow(self):
self.forget()
CloseAfterFinishFrame2()



class CloseAfterFinishFrame2(Frame): # Diz que herda os parametros de Frame
def __init__(self):
Frame.__init__(self,theMainFrame) # Inicializa com os parametros acima!!
Label(self,text="Hey",font=("Arial", 16)).pack()
button = Button (self, text = "the End", command=self.CloseWindow,font=("Arial", 12))
button.pack()
self.pack()
def CloseWindow(self):
self.forget()
CloseEnd()


class CloseEnd():
theMainFrame.quit()



CloseAfterFinishFrame1()

theMainFrame.mainloop()

最佳答案

调用root.quit(),而不是theMainFrame.quit:

import Tkinter as tk

class CloseAfterFinishFrame1(tk.Frame): # Diz que herda os parametros de Frame
def __init__(self, master):
self.master = master
tk.Frame.__init__(self, master) # Inicializa com os parametros acima!!
tk.Label(self, text="Hi", font=("Arial", 16)).pack()
self.button = tk.Button(self, text="I am ready",
command=self.CloseWindow, font=("Arial", 12))
self.button.pack()
self.pack()

def CloseWindow(self):
# disable the button so pressing <SPACE> does not call CloseWindow again
self.button.config(state=tk.DISABLED)
self.forget()
CloseAfterFinishFrame2(self.master)

class CloseAfterFinishFrame2(tk.Frame): # Diz que herda os parametros de Frame
def __init__(self, master):
tk.Frame.__init__(self, master) # Inicializa com os parametros acima!!
tk.Label(self, text="Hey", font=("Arial", 16)).pack()
button = tk.Button(self, text="the End",
command=self.CloseWindow, font=("Arial", 12))
button.pack()
self.pack()

def CloseWindow(self):
root.quit()

root = tk.Tk()
CloseAfterFinishFrame1(root)
root.mainloop()

此外,如果您只想调用函数 root.quit,则无需创建类 CloseEnd

关于python - 在 python 中退出主循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14838635/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com