Python Entry Widget数据自动更新并保存在文本文件中

时间:2017-10-08 05:54:02

标签: python-2.7 tkinter tkinter-entry

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

cat
mat
rat
hat

我想在Entry小部件中显示这些单词。喜欢" cat"在第一个Entry小部件中," mat"在第二个Entry小部件中等等。现在,如果我更新任何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()

1 个答案:

答案 0 :(得分:1)

您可以利用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()