Python 3.x Tkinter标签在文件更改后不更新

Python 3.x Tkinter标签在文件更改后不更新,python-3.x,tkinter,Python 3.x,Tkinter,我一直试图在文件内容更改时更新Tkinter标签。 程序读取多个文件并在Tkinter标签小部件中显示内容。每当文件内容发生变化时,我需要每X秒更新一次标签。 代码如下: from tkinter import * '''test.log test1 test2 test3 ''' file = 'test.log' # reading test.log file content def refresh(): with open(file) as f: lines = [

我一直试图在文件内容更改时更新Tkinter标签。 程序读取多个文件并在Tkinter标签小部件中显示内容。每当文件内容发生变化时,我需要每X秒更新一次标签。 代码如下:

from tkinter import *
'''test.log
test1
test2
test3
'''
file = 'test.log'
# reading test.log file content
def refresh():
    with open(file) as f:
        lines = []
        for line in f:
            lines.append(line)
        print(lines)
    root.after(300, refresh)
    return lines

#file1 =  (read_file1())

root = Tk()
root.geometry('250x400')

# multiple widgets1
file1Label1 = Label(root, text=refresh(), bg="gray", fg="white")
file1Label1.pack(side="top")
# multiple widgets2
#def refresh():
#    file1
#    root.after(1*60*1000, refresh)
refresh()
root.mainloop()
我试图使用
after
方法来调度函数并每X毫秒运行一次,但它没有按预期工作。有谁有更好的解决方案来实现这一点吗?
谢谢

如果您的
refresh()
函数只执行
打印(“刷新发生!”)
,那么它是否以您期望的频率打印?你的函数只有一行
file1
,这是你的实际代码吗?是的,这是我正在测试的实际代码。那么你希望
file1
在它自己的行上完成什么呢?如果test.log文件的内容发生了变化,即更新了条目“test 4”。我想在Tkinter GUI标签中看到此条目更新。好的,那么检查文件是否已更改的代码在哪里?或更改
file1Label[“text”]
以更新标签的代码?你的问题是用after更新逻辑是错误的,但我认为调度是正确的,你只是没有任何逻辑来实际修改标签。