πŸš€ go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.lang.python
2 messages
2 total messages Started by Pawel J. Maczewski Tue, 14 Jan 2003 14:50
PyGTK - przekierowanie stdout
#686
Author: Pawel J. Maczewski
Date: Tue, 14 Jan 2003 14:50
12 lines
1005 bytes
Witam,
  Jak w PyGTK przekierowac standardowy output np. do jednego pola
tekstowego, stderr do innego, itp? Jest wogole taka mozliwosc? Chce
przejsc z moim programem spod konsoli na GTK i chcialbym zrobic to
elegancko ;-) 

pozdrawiam
  Kender

-- 
   Pawel J. Maczewski @ HIL
    reg.linux user #281878
Re: PyGTK - przekierowanie stdout
#687
Author: Tomek Meka
Date: Tue, 14 Jan 2003 20:19
29 lines
1987 bytes
>   Jak w PyGTK przekierowac standardowy output np. do jednego pola
> tekstowego, stderr do innego, itp? Jest wogole taka mozliwosc? Chce
> przejsc z moim programem spod konsoli na GTK i chcialbym zrobic to
> elegancko ;-)

Hej!
Nie jest to trudne, musisz podmienic strumienie sys.stdout i sys.stderr.
Najlepiej uzyc do tego obiektu IOString z modulu o takiej samej nazwie.
err = IOString.IOString()
sys.stderr = err
...
print err.getvalue()

Problem w tym, ze musialbys co jakis czas sprawdzac zawartosc bufora, i
uaktualniac zawartosc okna. Rozwiazaniem tego moze byc wlasnej klasy
dziedziczacej IOString, ktΓ³ra np. przy kazdej aktualizacji bufora wywola
okreslona funkcje. Oto maly przyklad:

class StringIOFun(StringIO.StringIO):
 def __init__(self, fun):
  self.fun = fun
  StringIO.StringIO.__init__(self)

 def write(self, value):
  self.fun()      #callback
  StringIO.StringIO.write(self, value)

Mam nadzieje, ze to pomoglo.
Tomek
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads