首页 > 解决方案 > 有没有办法在 tkinter 中复制框架或条目?

问题描述

我试图在 tkinter 中使用 for 循环和 while 循环复制一个条目,如果你不理解我,我想用相同的变量制作一堆条目,比如 e = Entry(root).pack()有没有办法做到这一点,还是不可能

标签: pythontkinter

解决方案


我过去实现这一点的方式是在我的循环之前创建一个列表,然后在循环中像往常一样创建条目并将它添加到框架中,但是你会添加你的条目,然后将条目添加到列表中在你再次循环回来之前。这样,您仍然可以完全访问每个条目,但可以动态填充您的框架。

此方法适用于任何小部件。

def demo(self):
    self.tk_str_entries = []                                 # tk.StringVars list
    self.tk_entries = []                                     # tk.Entry list
    max_range = 10                                           # How many Entrys to make

    self.tk_demo_frame = tk.Frame(self.master)               # tk.Frame to hold Entrys

    for _ in range(max_range):                               # loop thru your range
        tk_str = tk.StringVar()                              # - create local tk.StringVar
        entry = tk.Entry(self.tk_demo_frame, textvariable=tk_str) # - create entry, link it to local StringVar
        self.tk_str_entries.append(tk_str)                   # - append StringVar to the list
        self.tk_entries.append(entry)                        # - append Entry to the list
        entry.pack()

推荐阅读