stdout到tkinter GUI

FLX*_*FLX 6 python tkinter

如何将stdout数据重定向到tkinter Text小部件?

Kat*_*iel 10

您需要创建一个类文件类,其write方法将写入Tkinter小部件,然后执行sys.stdout = <your new class>.看到这个问题.

示例(从链接复制):

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,str):
        self.text_area.write(str,False)
Run Code Online (Sandbox Code Playgroud)

然后,在你的Tkinter小部件中:

# To start redirecting stdout:
import sys
sys.stdout = StdoutRedirector( self )
# (where self refers to the widget)

# To stop redirecting stdout:
sys.stdout = sys.__stdout__
Run Code Online (Sandbox Code Playgroud)