我可以使用循环自动定义 tkinter 小部件吗?

can I automatically define tkinter widgets using a loop?

在下一个代码中 categories 是一个列表。该代码创建一个 window 并为列表中的每个项目添加标签和条目。

class Win3():
                def __init__(self, master, categories):
                                self.master = master
                                self.master.geometry('400x250')
                                self.master.resizable(False,False)
                                self.frame = Frame(self.master)
                                self.frame.grid(row=0, column=0, sticky=NW)
                                y=0
                                for x in categories:
                                                Label(self.frame, bg='#92DBE9' ,width=15 ,text=x).grid(row=y,column=0,padx=2,pady=2)
                                                Entry(self.frame, bd=1, width = 20).grid(row=y,column=2, padx=2,pady=2)
                                                y+=1

如何定义标签,以便我可以定义标签和条目,例如 label1entry1 label2entry2、... 我想使用它,这样我仍然可以在创建标签或插入后更改文本。

您不需要“定义标签和条目,例如 label1、entry1 label2、entry2”。名称无关紧要。您可以将它们保存为字典或列表中的元素。

labels = []
entries = []
for x in categories:
    label = Label(self.frame, bg='#92DBE9' ,width=15 ,text=x)
    entry = Entry(self.frame, bd=1, width = 20)

    label.grid(row=y,column=0,padx=2,pady=2)
    entry.grid(row=y,column=2, padx=2,pady=2)

    labels.append(label)
    entries.append(entry)

    y+=1

现在,您可以使用 labels[0]labels[1] 等方式访问标签。条目也是如此。