我正在使用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)
答案 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")