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()
我有一个文本文件,其中逐行包含四个单词。假设例如:
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()