git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@9729 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
		
			
				
	
	
		
			96 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			96 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| 
 | |
| from wxPython.wx import *
 | |
| from wxPython.lib.infoframe import *
 | |
| 
 | |
| #----------------------------------------------------------------------
 | |
| 
 | |
| class MyFrame(wxFrame):
 | |
|     def __init__(self,output):
 | |
|         wxFrame.__init__(self,None,-1,"Close me...",size=(300,100))
 | |
|         menubar = wxMenuBar()
 | |
|         menu = wxMenu()
 | |
|         mID = NewId()
 | |
|         menu.Append(mID,"&Enable output","Display output frame")
 | |
|         EVT_MENU(self,mID,output.EnableOutput)
 | |
|         mID = NewId()
 | |
|         menu.Append(mID,"&Disable output","Close output frame")
 | |
|         EVT_MENU(self,mID,output.DisableOutput)
 | |
|         menubar.Append(menu,"&Output")
 | |
|         self.SetMenuBar(menubar)
 | |
|         output.SetParent(self)
 | |
|         output.SetOtherMenuBar(menubar,menuname="Output")
 | |
|         EVT_CLOSE(self,self.OnClose)
 | |
|         EVT_TIMER(self, -1, self.OnTimer)
 | |
| 
 | |
|         self.timer = wxTimer(self, -1)
 | |
|         self.timer.Start(1000)
 | |
| 
 | |
|         self.save_stdout = sys.stdout
 | |
|         sys.stdout = self.output = output
 | |
|         print "Hello!"
 | |
| 
 | |
|     def OnClose(self,event):
 | |
|         sys.stdout = self.save_stdout
 | |
|         self.output.close()
 | |
|         self.timer.Stop()
 | |
|         self.timer = None
 | |
|         self.Destroy()
 | |
| 
 | |
|     def OnTimer(self, evt):
 | |
|         print "This was printed with \"print\""
 | |
| 
 | |
| 
 | |
| #----------------------------------------------------------------------
 | |
| 
 | |
| from wxPython.lib import infoframe
 | |
| overview = infoframe.__doc__
 | |
| 
 | |
| def runTest(frame, nb, log):
 | |
|     """
 | |
|     This method is used by the wxPython Demo Framework for integrating
 | |
|     this demo with the rest.
 | |
|     """
 | |
|     win = MyFrame(wxPyInformationalMessagesFrame())
 | |
|     frame.otherWin = win
 | |
|     win.Show(1)
 | |
| 
 | |
| #----------------------------------------------------------------------
 | |
| 
 | |
| if __name__ == "__main__":
 | |
| ##     class MyFrame(wxFrame):
 | |
| ##         def __init__(self,output):
 | |
| ##             wxFrame.__init__(self,None,-1,"Close me...",size=(300,100))
 | |
| ##             EVT_CLOSE(self,self.OnClose)
 | |
| ##             menubar = wxMenuBar()
 | |
| ##             menu = wxMenu()
 | |
| ##             mID = NewId()
 | |
| ##             menu.Append(mID,"&Enable output","Display output frame")
 | |
| ##             EVT_MENU(self,mID,output.EnableOutput)
 | |
| ##             mID = NewId()
 | |
| ##             menu.Append(mID,"&Disable output","Close output frame")
 | |
| ##             EVT_MENU(self,mID,output.DisableOutput)
 | |
| ##             menubar.Append(menu,"&Output")
 | |
| ##             self.SetMenuBar(menubar)
 | |
| ##             output.SetOtherMenuBar(menubar,menuname="Output")
 | |
| 
 | |
| ##         def OnClose(self,event):
 | |
| ##             if isinstance(sys.stdout,wxPyInformationalMessagesFrame):
 | |
| ##                 sys.stdout.close()
 | |
| ##             self.Destroy()
 | |
| 
 | |
|     class MyApp(wxApp):
 | |
|         outputWindowClass = wxPyInformationalMessagesFrame
 | |
|         def OnInit(self):
 | |
|             frame = MyFrame(self.stdioWin)
 | |
|             frame.Show(TRUE)
 | |
|             self.SetTopWindow(frame)
 | |
|             if isinstance(sys.stdout,wxPyInformationalMessagesFrame):
 | |
|                 sys.stdout.SetParent(frame)
 | |
|                 #self.redirectStdio(None)# this is done automatically
 | |
|                 # by the MyApp(1) call below
 | |
|             print "Starting.\n",
 | |
|             return true
 | |
| 
 | |
|     app = MyApp(1)
 | |
|     app.MainLoop()
 |