Python条目小部件数据自动更新并保存在文本文件中

Python Entry Widget data auto update and save in a text file

我有一个文本文件,其中逐行包含四个单词。假设例如:

cat
mat
rat
hat

我想在条目小部件中显示这些词。就像第一个 Entry 小部件中的 "cat",第二个 Entry 小部件中的 "mat" 等等。现在,如果我更新任何 Entry 小部件的内容,那么它也应该在文本文件中自动更新。我写了一些代码来显示 Entry 小部件,但在那之后我不知道如何实现这个?

from tkinter import *
top = Tk()

with open('C:/Users/jaykr/Desktop/data.txt') as file:
    data = file.read().split("\n")

for i in range(len(data)):
    Entry(top).grid(row=i, column=0)

top.mainloop()

您可以利用 tkinter 的 StringVar variable class 及其 trace() 方法。这是一个 MCVE:

import tkinter as tk

root = tk.Tk()

entry_var = tk.StringVar()
entry = tk.Entry(root, width=10, textvariable=entry_var)
entry.pack()

def autoupdate(*args):
    with open('test.txt', 'w') as f:
        f.write(entry_var.get())

entry_var.trace('w', autoupdate)

root.mainloop()