【问题标题】:can I automatically define tkinter widgets using a loop?我可以使用循环自动定义 tkinter 小部件吗?
【发布时间】:2020-11-02 15:38:17
【问题描述】:

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

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、... 我想使用它,这样我仍然可以在创建它们后更改标签或插入中的文本。

【问题讨论】:

    标签: python-3.x tkinter label tkinter-entry


    【解决方案1】:

    您不需要“定义标签和条目,如 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] 等内容访问标签。条目也是如此。

    【讨论】:

    • 非常感谢,布莱恩!它有效,您的解释非常有帮助!
    猜你喜欢
    • 2019-08-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-03
    • 2023-03-25
    • 2021-08-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多