[python] Presmerovanie stdout do okna v Tkinteri
Jakub Vojáček
Jakohv na seznam.cz
Středa Leden 31 16:28:56 CET 2007
> ------------ 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
Další informace o konferenci Python