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

FyueC · November 26, 2019 · Last by Wang replied at April 01, 2021 · 3454 hits

如题,网上找了很多都没找到合适的解决方法,看看论坛有没有大佬会的
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)

8Floor has deleted
9Floor has deleted
FyueC #10 · January 08, 2020 Author
os 回复

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

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

需要 Sign In 后方可回复, 如果你还没有账号请点击这里 Sign Up