【发布时间】:2020-01-16 16:58:41
【问题描述】:
我试图在一个框架内放置 2 个框架,而框架又放置在 TKinter 窗口上。我希望下面的代码在一个窗口上产生 4 个相等的帧,然后在第一帧内放置 2 个相等的帧。我得到的是四个相等的帧,前两个帧每个包含一个帧。
我正在调用我希望将两个较小/相等的框架放入的框架,但我似乎正在获取窗口参考。从我读过的内容来看,我相信框架可以放在框架内。
from tkinter import *
class list_frame (Frame):
def __init__(self,the_window):
super().__init__()
self["height"]=50
self["width"]=200
self["relief"]=RAISED
self["bd"]=8
self["bg"]="red"
class little_frame (Frame):
def __init__(self,the_frame):
super().__init__()
self["height"]=20
self["width"]=50
self["relief"]=RAISED
self["bd"]=8
self["bg"]="black"
my_window = Tk()
my_window.geometry("400x300+0+0")
frame_a = list_frame(my_window)
frame_a.grid(row=0, column=0)
frame_b = list_frame(my_window)
frame_b.grid(row=0, column=1)
frame_c = list_frame(my_window)
frame_c.grid(row=1, column=0)
frame_d = list_frame(my_window)
frame_d.grid(row=1, column=1)
frame_e = little_frame(frame_a)
frame_e.grid(row=0, column=0)
frame_f = little_frame(frame_a)
frame_f.grid(row=0, column=1)
my_window.mainloop()
我确信这是一个愚蠢的简单错误,但我没有看到它,重复的会话并没有让它跳出来。
【问题讨论】:
-
在
little_frame中,您没有将the_frame参数传递给超类,因此这些框架默认创建为根的子级。
标签: python python-3.x tkinter