我想通过文本框将Python shell的输出重定向到我的Tkinter GUI。
例如,点击我游戏中的库存将在Python shell中显示您的耗材。我希望它能够在GUI文本框中显示。
我将如何做到这一点?
答案 0 :(得分:0)
您可以为文本框创建处理程序,以便:
class textbox_handler:
def __init__(self, text):
self.data = []
self.text = text #text is your tk text widget.
def write(self, s):
self.data.append(s)
def print_out(self):
for line in data:
self.text.insert('end',line)
然后,在你的主要功能中:
import sys
def main():
handler = textbox_handler(text1)
sys.stdout = handler
print "sample text."
print "sample text #2."
print "another sample text."
#or you can use without setting sys.stdout
print >>handler, "yet another sample text."
每个print语句都调用处理程序对象的write方法。您只需从handler.data中检索这些字符串即可。