有没有办法将所有IDLE输出重定向到tkinter GUI,或者使用IDLE输出做些什么?我想在tkinter GUI中显示来自http.server
模块的所有IDLE输出,以监控发生在网络服务器上的所有事情。这可以通过几个简单的函数/命令来实现,还是需要编辑IDLE库文件?将IDLE输出重定向到GUI(Python33)
以前问过similair,我想将整个IDLE/python shell嵌入到监视程序中,但这对于最新的python版本来说似乎是不可能的。
编辑:
from tkinter import *
import sys, time, threading
global TXT
root = Tk()
TXT = Text(root, font="Arial")
TXT.pack(fill=X)
class RedirectText(object):
def __init__(self, TXT):
self.out = TXT
def write(self, string):
TXT.insert(END, string)
sys.stdout = RedirectText(TXT)
for i in range(10):
print("test", i+1)
def thread():
print("Delayed")
threading.Timer(1, thread).start()
threading.Timer(1, thread).start()
root.mainloop()
删除了所有故障代码,现在都没有了。不会写任何与系统有关的东西,只是一个print()
函数里面有什么。仍在寻找一种方式将所有系统输出到文本小部件中。
对于Tkinter将stdout重定向到文本小部件的示例,请参见[本答案] [1]。 [1]:http://stackoverflow.com/a/12352237/7432 –
@BryanOakley再次,精彩的回答!正是我需要的。不知怎的,没有找到它,我做了很多谷歌搜索。 – IPDGino