繁体   English   中英

循环中的Tkinter名称小部件

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM