Python 求解,如何在 python GUI 的 Text 控件中实时显示运行 log

FyueC · 2019年11月26日 · 最后由 Wang 回复于 2021年04月01日 · 4531 次阅读

如题,网上找了很多都没找到合适的解决方法,看看论坛有没有大佬会的
GUI 代码如下:

from tkinter import *
root = Tk()
text = Text(root,width=200,height=150)
text.pack()

希望实现像终端打印 Log 那样在 Text 控件上打印,已经试过重定向 sys.stderr,没啥效果,可能写的方式不对

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
共收到 9 条回复 时间 点赞

1

给 text 绑定一个 varString()

修改 varString() 即可

你这个问题太简单了,让我怀疑我是 py 大佬

os 回复

老哥,Text 控件没有 textvariable 选项

FyueC 回复

抱歉哈,好久没登录了。
你使用 tkinter 肯定是想做界面。
Text 如果没有属性的话,你可以绑给 Label,Label 组件具有这个属性
又或者你想用 Text 组件,那么 Text 组件有 Insert 方法

1 from tkinter import *
2
3 root = Tk()
4 text = Text(root,width=20,height=15)
5 text.pack()
6 text.insert(INSERT,"Python3 \n") #INSERT 索引表示插入光标当前的位置
7 text.insert(END,"python 算法")
8 mainloop()

也可以实现你的实时 log,具体怎么实现看你自己的意愿了

self.appValue = tk.StringVar()
self.appValue.set('双击选择 app')
appLabel = Label(self.master, textvariable=self.appValue)
appLabel.pack(side=TOP, pady=10, expand=YES, fill=BOTH)

8楼 已删除
9楼 已删除
FyueC #10 · 2020年01月08日 Author
os 回复

谢谢关注 已经控件实时读取文件的方式解决了,也可以重写 log 的 headler,将 log 中的 stderr 直接插入到控件中去实现

大佬,可以发出来解决结果吗?😁

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册