现在我有:
# create window frames
self.f1 = tk.Frame(self.root)
self.f2 = tk.Frame(self.root)
self.f3 = tk.Frame(self.root)
self.f4 = tk.Frame(self.root)
self.f5 = tk.Frame(self.root)
self.f6 = tk.Frame(self.root)
# place frames on window
for f in (self.f1, self.f2, self.f3, self.f4, self.f5, self.f6):
f.configure(bg="white")
f.configure(width=self.width, height=self.height, bg="white")
f.place(x=0, y=0)
我将添加更多帧。我想知道是否有迭代方法来创建所有帧,以及将它们放在窗口中并配置它们,而不必键入“self.f7,self.f8,self.f9”等。
答案 0 :(得分:2)
将每个新Frame
添加到列表中,然后遍历列表。
frames = []
self.f1 = tk.Frame(self.root)
frames.append(self.f1)
# Do that for all frames
for f in frames:
f.configure(bg="white")
f.configure(width=self.width, height=self.height, bg="white")
f.place(x=0, y=0)
编辑以回答评论:
为此创建一个方法:
def add_frames(self, how_many_frames):
for i in range(how_many_frames):
f = tk.Frame(self.root)
self.frames[i] = f
f.configure(bg="white")
f.configure(width=self.width, height=self.height, bg="white")
f.place(x=0, y=0)
您还需要在self.frames = dict()
方法中初始化__init__
。现在调用add_frames(30)
创建30帧,然后在self.frames
下的词典中存储并同时配置它们。