On Jun 19, 3:16 pm, Alejandro <[EMAIL PROTECTED]> wrote: > Hi: > > I want to redirect stdout to a textctrl I have. From what I read in > the wxpython documentation, I can use the wxLogTextCtrl class to do > this. I am doing the following: > > class MyGui(gui.MyFrame): #gui.MyFrame generated by wxGlade > def __init__(self, *args, **kwds): > gui.MyFrame.__init__(self, *args, **kwds) > # ... code removed ... > wx.Log_SetActiveTarget(wx.LogTextCtrl(self.text_ctrl_2)) > print 'foo' #to test the redirection > > if __name__ == "__main__": > app = wx.App(redirect=wx.LogTextCtrl) > wx.InitAllImageHandlers() > gui = MyGui(None, -1, "") > app.SetTopWindow(gui) > gui.Show() > app.MainLoop() > > However, the output instead of going to my textctrl, goes to a new > window named "xwPython: stdout/stderr". > > What am I missing?
Give this a try: <code> class XPinst(wx.App): def __init__(self, redirect=False, filename=None): wx.App.__init__(self, redirect, filename) def OnInit(self): self.frame = wx.Frame(None, -1, title='Redirect Test', size=(620,450), style=wx.STAY_ON_TOP| wx.DEFAULT_FRAME_STYLE) panel = wx.Panel(self.frame, -1) self.log = wx.TextCtrl(panel, -1, size=(500,400), style = wx.TE_MULTILINE|wx.TE_READONLY| wx.HSCROLL) redir=RedirectText(self.log) sys.stdout=redir print 'test' self.frame.Show() return True class RedirectText: def __init__(self,aWxTextCtrl): self.out=aWxTextCtrl def write(self,string): self.out.WriteText(string) </code> Mike -- http://mail.python.org/mailman/listinfo/python-list