如何在Tkinter中的另一帧内添加一个Frame?

时间:2018-05-22 04:49:32

标签: python user-interface tkinter frame

我正在尝试使用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()

显示以下输出

Output

1 个答案:

答案 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)

将此成语应用于您的所有小部件,这样可以避免一些麻烦。