Python中输出的文本框(基于文本的游戏)

时间:2012-06-16 20:07:44

标签: python

我想通过文本框将Python shell的输出重定向到我的Tkinter GUI。

例如,点击我游戏中的库存将在Python shell中显示您的耗材。我希望它能够在GUI文本框中显示。

我将如何做到这一点?

1 个答案:

答案 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中检索这些字符串即可。