Tkinter名称循环中的小部件

2024-06-06 06:19:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我目前正在Tkinter中创建一个文本框的“网格”,以便模拟高尔夫记分卡系统。我目前正在使用下面的代码来创建这个网格。如果我没有从文本框中获取单独的值,我可以使用函数从文本框中获取唯一的值。我并不真的想手动创建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)

Tags: 函数代码textinself网格fortkinter
2条回答

在本例中,我将使用字典,因为它允许您根据窗口小部件的网格位置引用它们。你可以这样做:

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行中获取小部件的值,可以使用以下方法访问它:

^{pr2}$

您可以使用列表来保存条目值,并在循环之后读取他们。这个是我通常做的事。在

尝试:

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)

之后:

^{pr2}$

相关问题 更多 >