【发布时间】:2013-06-30 06:50:18
【问题描述】:
有没有办法将所有 IDLE 输出重定向到 tkinter GUI,或者对 IDLE 输出做些什么?我想在 tkinter GUI 中显示来自 http.server 模块的所有 IDLE 输出,以监控发生在网络服务器上的所有事情。这是否可以通过一些简单的函数/命令来实现,或者这是否涉及编辑 IDLE lib 文件?
之前问过类似的问题,我想将整个 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() 函数里面的东西。仍在寻找将insert所有系统输出到文本小部件的方法。
【问题讨论】:
-
请参阅 [this answer][1] 了解将标准输出重定向到文本小部件的 Tkinter 示例。 [1]:stackoverflow.com/a/12352237/7432
-
@BryanOakley 再一次,一个绝妙的答案!正是我需要的。不知何故没有找到它,我做了很多谷歌搜索。
标签: python redirect tkinter output python-idle