pythontkinter:使任何输出显示在GUI上的文本框中,而不是shell中

pythontkinter:使任何输出显示在GUI上的文本框中,而不是shell中,python,tkinter,Python,Tkinter,我正在使用python和tkinter制作一个GUI,只是想知道是否有任何输出文本显示在GUI的窗口中而不是解释器/shell上 提前感谢如果如Bryan Oakley评论中所建议的,您希望“在GUI中打印'foo',但让它神奇地出现在文本小部件中”,请参见前面问题的答案。这个答案解决了如何在文本框中生成输出这一更简单的问题。要生成滚动文本窗口,请创建并放置或打包一个文本小部件(我们称之为mtb),然后使用mtb.insert(Tkinter.END,ms)等命令将字符串ms添加到文本框mtb,

我正在使用python和tkinter制作一个GUI,只是想知道是否有任何输出文本显示在GUI的窗口中而不是解释器/shell上


提前感谢

如果如Bryan Oakley评论中所建议的,您希望“在GUI中打印'foo',但让它神奇地出现在文本小部件中”,请参见前面问题的答案。这个答案解决了如何在文本框中生成输出这一更简单的问题。要生成滚动文本窗口,请创建并放置或打包一个文本小部件(我们称之为
mtb
),然后使用
mtb.insert(Tkinter.END,ms)
等命令将字符串
ms
添加到文本框
mtb
,以及
mtb。请参阅(Tkinter.END)
,以使框滚动。(有关更多详细信息,请参阅“”文档。)例如:

#!/usr/bin/env python
import Tkinter as tk

def cbc(id, tex):
    return lambda : callback(id, tex)

def callback(id, tex):
    s = 'At {} f is {}\n'.format(id, id**id/0.987)
    tex.insert(tk.END, s)
    tex.see(tk.END)             # Scroll if necessary

top = tk.Tk()
tex = tk.Text(master=top)
tex.pack(side=tk.RIGHT)
bop = tk.Frame()
bop.pack(side=tk.LEFT)
for k in range(1,10):
    tv = 'Say {}'.format(k)
    b = tk.Button(bop, text=tv, command=cbc(k, tex))
    b.pack()

tk.Button(bop, text='Exit', command=top.destroy).pack()
top.mainloop()

请注意,如果您希望文本窗口长时间保持打开状态和/或累积千兆字节的文本,可能需要跟踪文本框中的数据量,并每隔一段时间使用
delete
方法对其进行限制。

可能重复的不是真正的dup,这是您在询问如何在GUI中“打印'foo'”,但是它神奇地出现在文本小部件中了吗?我需要的是一个放置在GUI窗口上的框,它显示从GUI上的按钮调用的函数输出的任何文本