我正在尝试使用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()
显示以下输出
答案 0 :(得分:2)
是什么导致了您的问题?
lframe
值得None
,并且不会引用您创建的帧实例。为什么这样?
因为pack()
,gird()
和place()
布局管理器是不返回任何内容的函数。所以当你写:
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)
将此成语应用于您的所有小部件,这样可以避免一些麻烦。