[python] Presmerovanie stdout do okna v Tkinteri

radek py.cz na svarz.cz
Středa Leden 31 16:33:09 CET 2007


sys.stderr = text_window

Radek

On 1/31/07, Jakub Vojáček <Jakohv na seznam.cz> wrote:
>
> > ------------ Původní zpráva ------------
> > Od: Pavel Kosina <geon na post.cz>
> > Předmět: Re: [python] Presmerovanie stdout do okna v Tkinteri
> > Datum: 31.1.2007 13:50:20
> > ----------------------------------------
>
> > trochu jsem to vylepšil ;-)
> >
> > from Tkinter import *
> > from ScrolledText import ScrolledText
> > import sys
> >
> > class py_message_box:
> >
> >   def __init__(self, parent):
> >
> >     self.frame = Frame(parent)
> >     self.frame.pack()
> >
> >     self.text = ScrolledText(self.frame,
> > background='black',foreground='green', font=("Courier", 9))
> >     self.text.pack()
> >
> >     self.mybutton = Button(self.frame, text="Quit",
> > command=self.mybuttonClick)
> >     self.mybutton.pack(fill=BOTH) #roztažení
> >
> >   def mybuttonClick(self):
> >      self.frame.destroy()   # mě nikdy quit() nefungovalo...
> >
> >   def write(self, s):
> >     self.text.insert(END, s)
> >     self.text.see(END)  # aby bylo poslední vždy vidět
> >
> > root=Tk()
> > text_window = py_message_box(root)
> > sys.stdout = text_window
> >
> > print "Toto je pokus o presmerovanie printu do okna\n"*100  # 100x
> > root.mainloop()
> >
> >
> > --
> > geon
> > Pavel Kosina
>
> A jak bys to předělal aby to to zobrazovalo i chyby?  Přesměrovat print se mi podařilo, ale chyb ne:(
> například eval("error")
>
> zkoušel jsem
> try:eval("x")
> except:
>     import traceback
>     traceback.print_exc()
> ale to stejne vypsalo chybu do shellu a ne do okna...
>
> Dík
> Blujacker
> _______________________________________________
> Python mailing list
> Python na py.cz
> http://www.py.cz/mailman/listinfo/python
>


Další informace o konferenci Python