Allow the stdout redirection to be toggled on or off in the demo
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@26175 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -493,9 +493,15 @@ class wxPythonDemo(wx.Frame):
|
|||||||
# Make a File menu
|
# Make a File menu
|
||||||
self.mainmenu = wx.MenuBar()
|
self.mainmenu = wx.MenuBar()
|
||||||
menu = wx.Menu()
|
menu = wx.Menu()
|
||||||
|
item = menu.Append(-1, '&Redirect Output',
|
||||||
|
'Redirect print statements to a window',
|
||||||
|
wx.ITEM_CHECK)
|
||||||
|
self.Bind(wx.EVT_MENU, self.OnToggleRedirect, item)
|
||||||
|
|
||||||
item = menu.Append(-1, 'E&xit\tAlt-X', 'Get the heck outta here!')
|
item = menu.Append(-1, 'E&xit\tAlt-X', 'Get the heck outta here!')
|
||||||
self.Bind(wx.EVT_MENU, self.OnFileExit, item)
|
self.Bind(wx.EVT_MENU, self.OnFileExit, item)
|
||||||
wx.App_SetMacExitMenuItemId(item.GetId())
|
wx.App_SetMacExitMenuItemId(item.GetId())
|
||||||
|
|
||||||
self.mainmenu.Append(menu, '&File')
|
self.mainmenu.Append(menu, '&File')
|
||||||
|
|
||||||
# Make a Demo menu
|
# Make a Demo menu
|
||||||
@@ -743,6 +749,15 @@ class wxPythonDemo(wx.Frame):
|
|||||||
def OnFileExit(self, *event):
|
def OnFileExit(self, *event):
|
||||||
self.Close()
|
self.Close()
|
||||||
|
|
||||||
|
def OnToggleRedirect(self, event):
|
||||||
|
app = wx.GetApp()
|
||||||
|
if event.Checked():
|
||||||
|
app.RedirectStdio()
|
||||||
|
print "Print statements and other standard output will now be directed to this window."
|
||||||
|
else:
|
||||||
|
app.RestoreStdio()
|
||||||
|
print "Print statements and other standard output will now be sent to the usual location."
|
||||||
|
|
||||||
def OnHelpAbout(self, event):
|
def OnHelpAbout(self, event):
|
||||||
from About import MyAboutBox
|
from About import MyAboutBox
|
||||||
about = MyAboutBox(self)
|
about = MyAboutBox(self)
|
||||||
|
@@ -29,6 +29,13 @@ class PyOnDemandOutputWindow:
|
|||||||
EVT_CLOSE(self.frame, self.OnCloseWindow)
|
EVT_CLOSE(self.frame, self.OnCloseWindow)
|
||||||
|
|
||||||
|
|
||||||
|
def OnCloseWindow(self, event):
|
||||||
|
if self.frame is not None:
|
||||||
|
self.frame.Destroy()
|
||||||
|
self.frame = None
|
||||||
|
self.text = None
|
||||||
|
|
||||||
|
|
||||||
# These methods provide the file-like output behaviour.
|
# These methods provide the file-like output behaviour.
|
||||||
def write(self, text):
|
def write(self, text):
|
||||||
"""
|
"""
|
||||||
@@ -53,11 +60,6 @@ class PyOnDemandOutputWindow:
|
|||||||
wx.CallAfter(self.frame.Close)
|
wx.CallAfter(self.frame.Close)
|
||||||
|
|
||||||
|
|
||||||
def OnCloseWindow(self, event):
|
|
||||||
if self.frame is not None:
|
|
||||||
self.frame.Destroy()
|
|
||||||
self.frame = None
|
|
||||||
self.text = None
|
|
||||||
|
|
||||||
#----------------------------------------------------------------------
|
#----------------------------------------------------------------------
|
||||||
|
|
||||||
@@ -131,7 +133,7 @@ your Mac."""
|
|||||||
self.RestoreStdio()
|
self.RestoreStdio()
|
||||||
|
|
||||||
|
|
||||||
def RedirectStdio(self, filename):
|
def RedirectStdio(self, filename=None):
|
||||||
"""Redirect sys.stdout and sys.stderr to a file or a popup window."""
|
"""Redirect sys.stdout and sys.stderr to a file or a popup window."""
|
||||||
if filename:
|
if filename:
|
||||||
_sys.stdout = _sys.stderr = open(filename, 'a')
|
_sys.stdout = _sys.stderr = open(filename, 'a')
|
||||||
|
Reference in New Issue
Block a user