output

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • H.S. Art

    output

    Hi folks,

    I have a sript that runs very well. I do my output to the python shell
    with the print command. That works well, too.
    print 'Error occured ' + str(i+1)

    No I want to have my output into a textctrl frame in a window. I start
    my script by pushing a button in my window. It starts fine but I can't
    see any output. For test purposes I added the following code to the
    event handler of the button:
    self.textCtrl1. WriteText('TEST \n')
    This produces output to my text ctrl window. So I replaced all 'print'
    commands in my script with 'self.textCtrl1 .WriteText ...' Unfortunately
    it still doesn't work. I don't get any output from my script. I always
    get an error saying self is unknown. That's why I replaced it with the
    name of the file of the window and so on and so on. Nothing worked. Can
    you help me telling me how I have to write my code to get an output?

    Thank you very much.
    Henry

  • Fredrik Lundh

    #2
    Re: output

    H.S. Art wrote:
    [color=blue]
    > I have a sript that runs very well. I do my output to the python shell
    > with the print command. That works well, too.
    > print 'Error occured ' + str(i+1)
    >
    > No I want to have my output into a textctrl frame in a window. I start
    > my script by pushing a button in my window. It starts fine but I can't
    > see any output. For test purposes I added the following code to the
    > event handler of the button:
    >
    > self.textCtrl1. WriteText('TEST \n')
    >
    > This produces output to my text ctrl window. So I replaced all 'print'
    > commands in my script with 'self.textCtrl1 .WriteText ...'[/color]

    someone else will have to sort the variable scoping issues for you [1],
    but in the meantime, you could try the following little trick.

    1) at the top of your program, import the "sys" module:

    import sys

    2) in the event handler, add the following redirection code:

    # redirect output to my window
    class redirect:
    def __init__(self, window):
    self.write = window.WriteTex t
    sys.stdout = redirect(self.t extCtrl1)

    </F>

    1) the following links might be somewhat helpful:


    http://www.python.org/doc/current/ref/naming.html (technical)




    Comment

    • H.S. Art

      #3
      Re: output

      Thank you for your answer!
      That "little" trick works perfect for me. :-)



      Fredrik Lundh wrote:
      [color=blue]
      >H.S. Art wrote:
      >
      >
      >[color=green]
      >>I have a sript that runs very well. I do my output to the python shell
      >>with the print command. That works well, too.
      >>print 'Error occured ' + str(i+1)
      >>
      >>No I want to have my output into a textctrl frame in a window. I start
      >>my script by pushing a button in my window. It starts fine but I can't
      >>see any output. For test purposes I added the following code to the
      >>event handler of the button:
      >>
      >>self.textCtrl 1.WriteText('TE ST\n')
      >>
      >>This produces output to my text ctrl window. So I replaced all 'print'
      >>commands in my script with 'self.textCtrl1 .WriteText ...'
      >>
      >>[/color]
      >
      >someone else will have to sort the variable scoping issues for you [1],
      >but in the meantime, you could try the following little trick.
      >
      >1) at the top of your program, import the "sys" module:
      >
      > import sys
      >
      >2) in the event handler, add the following redirection code:
      >
      > # redirect output to my window
      > class redirect:
      > def __init__(self, window):
      > self.write = window.WriteTex t
      > sys.stdout = redirect(self.t extCtrl1)
      >
      ></F>
      >
      >1) the following links might be somewhat helpful:
      >
      >http://www.python.org/doc/current/tu...00000000000000
      >http://www.python.org/doc/current/ref/naming.html (technical)
      >
      >
      >
      >
      >
      >[/color]

      Comment

      Working...