You need to make a file-like class whose write
method writes to the Tkinter widget instead, and then do sys.stdout = <your new class>
. See this question.
Example (copied from the link):
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)
and then, in your Tkinter widget:
# To start redirecting stdout:
import sys
sys.stdout = StdoutRedirector( self )
# (where self refers to the widget)
# To stop redirecting stdout:
sys.stdout = sys.__stdout__
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…