在python中退出mainloop

尽管我是一种使用其他语言进行实验的程序员,但是我在Python中还是一个新手。我一直在尝试做一个非常简单的事情,那就是在启动后退出mainloop。看来这很重要。下面的程序仅产生一系列事件。一切似乎都正常,但是我无法关闭最后一个窗口。该怎么办?

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()

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

以上是 在python中退出mainloop 的全部内容, 来源链接: utcz.com/qa/413702.html

回到顶部