Tkinter:将stdout重定向到只读文本

时间:2014-04-07 19:54:57

标签: python python-2.7 tkinter

我正在使用Python Tkinter创建一个GUI。

我能够将stdout重定向到文本字段,但不知道如何将其设置为只读(不允许用户编辑)。

到目前为止重定向stdout脚本:

class IORedirector(object):
   '''A general class for redirecting I/O to this Text widget.'''
   def __init__(self,text_area):
      self.text_area = text_area
class StdoutRedirector(IORedirector):
   '''A class for redirecting stdout to this Text widget.'''
   def write(self,message):
      self.text_area.insert("insert", message)

self.text_box = Text(self, wrap = 'word')
self.text_box.grid(column = 0, row = 1, columnspan = 2, sticky = 'NSWE', padx = 5, pady = 5)
sys.stdout = StdoutRedirector(self.text_box)

1 个答案:

答案 0 :(得分:1)

实际上很容易做到。

在类StdoutRedirector中添加2行:

class StdoutRedirector(IORedirector):
   '''A class for redirecting stdout to this Text widget.'''
   def write(self,message):
      self.text_area.config(state = "normal")
      self.text_area.insert("insert", message)
      self.text_area.config(state = "disabled")