[英]Tkinter name widgets in a loop
我目前正在Tkinter中创建一个文本框的“网格”,以模拟高尔夫记分卡系统。 我目前正在使用下面的代码来创建此网格。 当我将条目存储到这些文本框中的Microsoft Access数据库时,如果创建的窗口小部件没有唯一的名称,我如何使用.get()函数从各个文本框中检索值。 我真的不想手动创建105个文本框,即使我知道它会起作用。 任何帮助表示赞赏。
for x in range(1, 22):
for y in range(4, 9):
e = tk.Text(self,
height=1,
width=3)
e.grid(column=x,
row=y)
您可以使用列表来保存条目值,并在循环之后读取它们。这就是我通常所做的。
尝试:
entries_list = []
for x in range(1, 22):
for y in range(4, 9):
e = tk.Text(self,
height=1,
width=3)
e.grid(column=x,
row=y)
entries_list.append(e)
之后:
for x in entries_list:
x.get(1.0, END)
在这种情况下,我会使用字典,因为它允许您根据网格位置引用窗口小部件。 你可以这样做:
text_widgets = {}
for x in range(1, 22):
for y in range(4, 9):
e = tk.Text(self,
height=1,
width=3)
e.grid(column=x,
row=y)
text_widgets[(x, y)] = e
这允许您稍后在位置访问小部件 - 因此,如果您想要第10列第7行中小部件的值,您可以使用以下方法访问它:
text_widgets[(10, 7)].get('1.0', 'end-1c')
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.