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

Python 3.x 我可以使用循环自动定义tkinter小部件吗?,python-3.x,tkinter,label,tkinter-entry,Python 3.x,Tkinter,Label,Tkinter Entry,在下一个代码中,类别是一个列表。代码创建一个窗口,并为列表中的每个项目添加标签和条目 类Win3(): 定义初始(自、主、类别): self.master=master 自主几何体('400x250') self.master.reshable(False,False) self.frame=frame(self.master) self.frame.grid(行=0,列=0,粘性=NW) y=0 对于类别中的x: 标签(self.frame,bg='#92DBE9',宽度=15,文本=x).g

在下一个代码
中,类别
是一个列表。代码创建一个窗口,并为列表中的每个项目添加标签和条目

类Win3():
定义初始(自、主、类别):
self.master=master
自主几何体('400x250')
self.master.reshable(False,False)
self.frame=frame(self.master)
self.frame.grid(行=0,列=0,粘性=NW)
y=0
对于类别中的x:
标签(self.frame,bg='#92DBE9',宽度=15,文本=x).grid(行=y,列=0,padx=2,pady=2)
条目(self.frame,bd=1,width=20).grid(行=y,列=2,padx=2,pady=2)
y+=1
如何定义标签以便定义标签和条目,如
label1
entry1
label2
entry2
,。。。 我想使用它,这样在创建标签或插入内容后,我仍然可以更改它们的文本。

您不需要“定义标签和条目,如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

这样,您现在就可以使用类似于
标签[0]
标签[1]
等内容访问标签。参赛作品也是如此。

非常感谢你,布莱恩!这很有效,你的解释很有帮助!