我目前正在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)
答案 0 :(得分:1)
您可以使用列表来保存条目值,并在循环之后读取它们。这就是我通常所做的。
尝试:
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)
答案 1 :(得分:1)
在这种情况下,我会使用字典,因为它允许您根据网格位置引用窗口小部件。你可以这样做:
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')