点击关闭按钮后程序未结束(使用wxpython-GUI)
我用Python做了一个CPU调度程序,使用wxpython创建了一个窗口,里面只有一个大文本区域,这个区域会不断更新。问题是,当我点击关闭按钮(x)时,窗口虽然关闭了,但又会出现一个或多个新的窗口,程序还在继续运行。下面是界面的代码。
class Interface(wx.Frame):
def __init__(self , par , id):
wx.Frame.__init__(self , par , id , 'XP simulator' , size=(200 , 200 ))
panel = wx.Panel(self)
self.sel = 30
centerPanel = wx.Panel(panel, -1 , size=(100,100) , pos=(50,30))
self.cpu = CPU(centerPanel, -1)
def prnt(string , frm):
print string
if __name__ =="__main__":
mutex = threading.Semaphore()
full = threading.Semaphore(0)
empty = threading.Semaphore(30)
buff = util.Queue()
prod = util.Producer(buff , mutex , empty , full)
app = wx.App()
frame = Interface(None, -1)
frame.Show()
prod.start()
print "produced"
time.sleep(1)
xp = sched.XPsched(buff , mutex , full , empty, prnt, frame)
xp.start()
app.MainLoop()
谢谢;)
Nataly..1 个回答
1
你需要在你的wxFrame里绑定一个关闭事件:
self.Bind(wx.EVT_CLOSE, self.on_close)
然后添加一个on_close方法:
def on_close(self, event):
self.Destroy()
sys.exit(0)