Python Tkinter Entry Widget Overwrite



是否可以覆盖条目小部件?

我有 10 多个条目小部件,它们在一段时间内不断更新,我担心效率。

def update_data(self):
if(index <= 1):
self.n_entry.insert(END, index)
else:
self.a_entry.delete(0, END)
self.b_entry.delete(0, END)
self.c_entry.delete(0, END)
self.d_entry.delete(0, END)
self.e_entry.delete(0, END)
self.f_entry.delete(0, END)
self.g_entry.delete(0, END)
self.h_entry.delete(0, END)
self.i_entry.delete(0, END)
self.l_entry.delete(0, END)
self.a_entry.insert(0, index)
self.b_entry.insert(0, index)
self.c_entry.insert(0, index)
self.d_entry.insert(0, index)
self.e_entry.insert(0, index)
self.f_entry.insert(0, index)
self.g_entry.insert(0, index)
self.h_entry.insert(0, index)
self.i_entry.insert(0, index)
self.l_entry.insert(0, index)

上述解决方案是更新条目小部件的唯一方法吗?

下面是一个简单的示例,说明如何使用列表来存储所有输入字段。

正如您在下面的示例中看到的,只需 4 行代码即可创建所有 Entry 小部件。列表和 for 循环。这样做的好处是您可以使用相同的 4 行代码来创建任意数量或任意数量的 Entry 小部件或任何其他您想要的小部件。

from tkinter import *

root = Tk()
entry_list = []
for i in range(10):
entry_list.append(Entry(root))
entry_list[i].pack()
def update_entry_fields():
for i in entry_list:
i.delete(END)
i.insert(0, "Test")
btn1 = Button(root, text="Test", command = update_entry_fields)
btn1.pack()
root.mainloop()

此示例只是使用for循环来更新每个条目,但您也可以使用索引。

您也可以使用字典来执行相同的操作。

最新更新