如何在 Tkinter 中的另一个框架内添加一个框架?
How to add an Frame inside another frame in Tkinter?
我正在尝试使用 tkinter 在另一个框架内添加一个框架,但未添加该框架:
代码:
lframe=Frame(r,width=1000,height=650,relief='raise',bd=8).pack(side=LEFT)
rframe=Frame(r,width=350,height=650,relief='raise',bd=8).pack(side=RIGHT)
lframe1=Frame(lframe,width=1000,height=100,bd=8,relief='raise').pack(side= TOP)
lframe2=Frame(lframe,width=1000,height=55,bd=8,relief='raise').pack(side=TOP)
rframe1=Frame(rframe,width=350,height=215,relief='raise',bd=8).pack(side=TOP)
rframe2=Frame(rframe,width=350,height=415,relief='raise',bd=8).pack(side=TOP)
r.mainloop()
它显示以下输出
是什么导致了您的问题?
lframe
值 None
并且不引用您创建的框架实例。为什么会这样?
因为 pack()
、gird()
和 place()
布局管理器是 return 没有的功能。所以当你写:
lframe=Frame(r,width=1000,height=650,relief='raise',bd=8).pack(side=LEFT)
您显然从 pack(side=LEFT)
得到 None
如何解决您的问题?
创建小部件时只需遵循以下原则:先创建然后定位(在您的情况下,您同时创建和定位小部件)。我个人将这个原则称为The SaYa idiom。也就是说,上一行代码应该写成:
lframe=Frame(r,width=1000,height=650,relief='raise',bd=8)
lframe.pack(side=LEFT)
将此习语应用到您的所有小部件,这将使您免于一些麻烦。
我正在尝试使用 tkinter 在另一个框架内添加一个框架,但未添加该框架:
代码:
lframe=Frame(r,width=1000,height=650,relief='raise',bd=8).pack(side=LEFT)
rframe=Frame(r,width=350,height=650,relief='raise',bd=8).pack(side=RIGHT)
lframe1=Frame(lframe,width=1000,height=100,bd=8,relief='raise').pack(side= TOP)
lframe2=Frame(lframe,width=1000,height=55,bd=8,relief='raise').pack(side=TOP)
rframe1=Frame(rframe,width=350,height=215,relief='raise',bd=8).pack(side=TOP)
rframe2=Frame(rframe,width=350,height=415,relief='raise',bd=8).pack(side=TOP)
r.mainloop()
它显示以下输出
是什么导致了您的问题?
lframe
值 None
并且不引用您创建的框架实例。为什么会这样?
因为 pack()
、gird()
和 place()
布局管理器是 return 没有的功能。所以当你写:
lframe=Frame(r,width=1000,height=650,relief='raise',bd=8).pack(side=LEFT)
您显然从 pack(side=LEFT)
如何解决您的问题?
创建小部件时只需遵循以下原则:先创建然后定位(在您的情况下,您同时创建和定位小部件)。我个人将这个原则称为The SaYa idiom。也就是说,上一行代码应该写成:
lframe=Frame(r,width=1000,height=650,relief='raise',bd=8)
lframe.pack(side=LEFT)
将此习语应用到您的所有小部件,这将使您免于一些麻烦。