1
如何將RuntimeError
重定向到日誌而不是控制檯?重定向RuntimeError而不是在wxPython中的控制檯?
在下面的代碼中,'Hello'
被打印到控制檯,該控制檯被重定向到wx.TextCtrl
。然而,RuntimeError
凸起的OnClose被打印到終端。如何重定向RuntimeError
以查看與'Hello'
相同的日誌?
import sys
import wx
class RedirectText:
def __init__(self, log):
self.log = log
def write(self,string):
self.log.AppendText(string)
class MainFrame(wx.Frame):
def __init__(self):
wx.Frame.__init__(self, None)
self.log = wx.TextCtrl(self, -1, '', style=wx.TE_READONLY|wx.TE_MULTILINE)
sizer = wx.BoxSizer()
sizer.Add(self.log, 1, wx.ALL | wx.EXPAND, 5)
self.SetSizer(sizer)
redirection = RedirectText(self.log)
sys.stdout = redirection
print 'hello'
self.Bind(wx.EVT_CLOSE, self.OnClose)
def OnClose(self, event):
raise RuntimeError('error')
if __name__ == "__main__":
app = wx.PySimpleApp()
frame = MainFrame()
frame.Show()
app.MainLoop()
哈哈!這比我想象的要容易得多。傻了,忽略了那個小細節。 – c00kiemonster 2010-10-20 13:10:52