将输出重定向到pygtk中的textbuffer

时间:2014-08-27 06:55:17

标签: python pygtk

无论如何都要将所有python输出重定向到pygtk中的textview

示例:

print "hi"  #It should insert "hi" into textview instead of printing in terminal

那么如何将textview设置为sys.stdout和sys.stderr?

PS:我已经尝试将stdout和stderr设置为文件,然后读取文件并将其添加到textview。但是,有没有直接的方法可以直接输出到textview?

1 个答案:

答案 0 :(得分:0)

您的问题很奇怪,在某种意义上说,您将文本添加到文本缓冲区(而不是textview),但使用其中一种可用的方法,例如: set_text()将使用insert()的新文本替换整个内容(如果存在),该文本将在gtk.TextIter位置插入文本(标识缓冲区中的位置)

至于将stdout重定向到缓冲区,可以使用readline()方法,因为它是一个像object这样的文件,并按照前面的说明将内容写入缓冲区。

P.S。 tyou应该使用pygobject(或更好的PyGI)而不是pygtk,后者不会维持三年以上。