第一次在这里提问,但是我试图创建一个动态创建Entry的程序,但是我不知道如何从Entry中获取文本并将其放入列表中。
我在这里查看的问题是:Getting values of dynamically generated Entry fields using Tkinter,但是我无法弄清楚如何使代码在我的特定情况下有效,并且在过去五年中情况可能发生了变化。
任何反馈将不胜感激。
示例:
Working with (List+{Capturer}) that holds (1 2 3 4)
第一个将获得类似于“ username1”的值,第二个将获得“ username2”,依此类推,其余的动态添加的条目均如此。
如果有更聪明的方法,或者您希望我显示所有代码,请告诉我!
编辑: 这是我添加按钮的代码
tk.Entry(TAB1, textvariable=username[i])
tk.Entry(TAB1, textvariable=username[i])
当用户想要添加三行nextRow = 4
usernames = []
def addInput():
global nextRow
entry = tk.Entry(TAB1)
entry.grid(row=nextRow, column=0, sticky='WE', padx=10, pady=2)
ent2 = tk.Entry(TAB1).grid(row=nextRow, column=1, sticky='WE', padx=10, pady=2)
ent3 = tk.Entry(TAB1).grid(row=nextRow, column=2, sticky='WE', padx=10, pady=2)
nextRow += 1
usernames.append(entry.get())
的新行时,我还有一个使用addInput()
的按钮
tk.Entry
目前我不确定如何添加条目并跟踪其值。
答案 0 :(得分:0)
通常来说,您根本不需要使用textvariable。只需将条目保留在列表中,然后引用列表以获取值。使用textvariable
是可以的,但是大多数人使用它的方式只是增加了开销,却没有提供任何实际价值。
entries = []
for i in range(10):
entry = tk.Entry(TAB1)
...
for i in range(10):
print(f"Entry {i} has value {entries[i].get()}")
如果您确实要使用textvariable
,则仍然可以使用相同的技术,但是您可以保存变量而不是条目。
vars = []
for i in range(10):
var = tk.StringVar()
vars.append(var)
entry = tk.Entry(Tab1, textvariable=var)