如何根据用户输入在 tkinter 中创建动态条目小部件并将来自这些条目小部件的输入存储在列表中

How to create dynamic entry widgets in tkinter based upon user inputs and store input from those entry widgets in a list

我是 python 的初学者,在我的代码中我想根据用户输入创建条目小部件,然后将输入存储在列表中,问题是列表存储的值是非类型我也无法使用列表

def displayinput():
    r = var.get()

    for x in range(1, r + 1):

        Label_max = Label(master, text="T MAX").grid(row=11 + x,column=4)

        Lbael_min = Label(master, text="T MIN").grid(row=11 + x, column=6)

        list_1.append(Entry(master).grid(row=11+x,column=5))
        list_2.append(Entry(master).grid(row=11+x,column=7))
        x = x + 1

这里的var是用户输入的输入框数量

问题是存储的网格函数的 return 值在每种情况下都是 None。 为了能够处理 Entry 元素的数据,您应该创建一个变量列表并将作为 textvariable 参数传递给 Entry 实例。

def displayinput():
    r = var.get()

    for x in range(1, r + 1):

        Label_max = Label(master, text="T MAX").grid(row=11 + x,column=4)

        Lbael_min = Label(master, text="T MIN").grid(row=11 + x, column=6)

        list_1.append(StringVar())
        list_2.append(StringVar())
        Entry(master, textvariable=list_1[-1]).grid(row=11+x,column=5)
        Entry(master, textvariable=list_2[-1]).grid(row=11+x,column=7)
        x = x + 1

或者您可以存储 Entry 实例并获取它们的输入:

def displayinput():
    r = var.get()

    for x in range(1, r + 1):

        Label_max = Label(master, text="T MAX").grid(row=11 + x,column=4)

        Lbael_min = Label(master, text="T MIN").grid(row=11 + x, column=6)

        list_1.append(Entry(master))
        list_2.append(Entry(master))
        list_1[-1].grid(row=11+x,column=5)
        list_2[-1].grid(row=11+x,column=7)
        x = x + 1