[python] Presmerovanie stdout do okna v Tkinteri

Pavel Kosina geon na post.cz
Středa Leden 31 13:42:13 CET 2007


RMiklos na pss.sk napsal(a):
> Takze presmerovanie print-ov konzoloveho programu do okna (sys.stdout = 
> text_window) 
> bude fungovat i s konzolovym programom ktory pouziva sys.exit()  /diky 
> Leovi/ asi takto:
>   
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



Další informace o konferenci Python