Restarting a Python Application
Matimus
mccredie at gmail.com
Sat Jul 7 13:28:32 EDT 2007
> Actually I am using wxPython for a GUI front-end. Thus, it is already
> in a class. I am not sure how to apply your idea to a program that is
> already running in an infinite event loop.
I don't know wxPython, but I was able to grab an example program and
adapt it to do what I think you are asking for.
Something like this:
[code]
#! /usr/bin/env python
from wxPython import wx
ID_EXIT = 101
ID_RST = 102
class MyFrame(wx.wxFrame):
def __init__(self, parent, ID, title):
wx.wxFrame.__init__(self, parent, ID, title,
wx.wxDefaultPosition, wx.wxSize(200, 150))
self.CreateStatusBar()
self.SetStatusText("This is the statusbar")
menu = wx.wxMenu()
menu.Append(ID_EXIT, "E&xit", "Terminate the program")
menu.Append(ID_RST, "&Restart", "Restart the program")
menuBar = wx.wxMenuBar()
menuBar.Append(menu, "&File");
self.SetMenuBar(menuBar)
wx.EVT_MENU(self, ID_EXIT, self.TimeToQuit)
wx.EVT_MENU(self, ID_RST, self.TimeToRestart)
def TimeToQuit(self, e):
self.Close(wx.true)
def TimeToRestart(self, e):
global restart
restart = True
self.TimeToQuit(e)
class MyApp(wx.wxApp):
def OnInit(self):
global restart
restart = False
frame = MyFrame(wx.NULL, -1, "Hello from wxPython")
frame.Show(wx.true)
self.SetTopWindow(frame)
return wx.true
if __name__ == "__main__":
MyApp(0).MainLoop()
while restart:
MyApp(0).MainLoop()
[/code]
More information about the Python-list
mailing list