无论如何都要将所有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?
答案 0 :(得分:0)
您的问题很奇怪,在某种意义上说,您将文本添加到文本缓冲区(而不是textview),但使用其中一种可用的方法,例如: set_text()将使用insert()的新文本替换整个内容(如果存在),该文本将在gtk.TextIter位置插入文本(标识缓冲区中的位置)
至于将stdout重定向到缓冲区,可以使用readline()方法,因为它是一个像object这样的文件,并按照前面的说明将内容写入缓冲区。
P.S。 tyou应该使用pygobject(或更好的PyGI)而不是pygtk,后者不会维持三年以上。