来自tkinter窗口上文件的实时文本

时间:2017-04-29 08:58:55

标签: python-3.x tkinter

我尝试了很多次使用不同的逻辑但是我失败了,任何人都可以帮助我:如何使用txt文件中的数据实时更新tkinter窗口?

1 个答案:

答案 0 :(得分:2)

你在这里:

import tkinter as tk
import time

class App(tk.Tk):

    def __init__(self,*args, **kwargs):
        tk.Tk.__init__(self, *args, **kwargs)
        # ... YOUR widgets here ...
        self.T = tk.Text(self, height=25, width=80)
        self.S = tk.Scrollbar(self)
        self.T.config(yscrollcommand=self.S.set)
        self.T.pack(side=tk.LEFT, fill=tk.Y)
        self.S.config(command=self.T.yview)
        self.S.pack(side=tk.RIGHT, fill=tk.Y)
        self.updateWidgets()

    def updateWidgets(self):
        with open('realTimeUpdatingTextWidget_Cg.py') as f:
            newText = f.read()
        # ... YOUR code for updating the Widgets ...
        self.T.delete('1.0', tk.END)
        self.T.insert(tk.END, newText)
        self.after(1000, self.updateWidgets)

app = App()
app.mainloop()

将上面的代码保存在文件realTimeUpdatingTextWidget_Cg.py中并运行它以查看在文本编辑器中编辑文件时的更改。

TRICK 使用以下代码结构:

class App(tk.Tk):
    def __init__(self,*args, **kwargs):
        tk.Tk.__init__(self, *args, **kwargs)
        # ... YOUR widgets here ...
        self.updateWidgets()
    def updateWidgets(self):
        with open('fileWithWidgetsParameters.txt') as f:
            realTimeFileContent = f.read()
        # ... YOUR code for updating the Widgets ...
        self.after(1000, self.updateWidgets)
app = App()
app.mainloop()