我可以使用循环自动定义 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
如何定义标签,以便我可以定义标签和条目,例如 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
现在,您可以使用 labels[0]
、labels[1]
等方式访问标签。条目也是如此。
在下一个代码中 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
如何定义标签,以便我可以定义标签和条目,例如 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
现在,您可以使用 labels[0]
、labels[1]
等方式访问标签。条目也是如此。