将Tkinter小部件放在框架内的问题

时间:2015-04-10 23:43:02

标签: python python-3.x tkinter

我刚刚开始使用Tkinter,而且我有一个非常简单的问题让我疯狂。我试图在标签框架内放置一个按钮。这是一个非常简单的任务,有很多在线教程。只需创建按钮并将框架指定为父级。然后使用pack命令将窗口小部件打包到其父窗口中。但是,当我这样做时,按钮 - 或任何小部件 - 总是在父级之下。无论我使用pack还是grid,子窗口小部件总是在它下面。 Refer to this image

from tkinter import *

application = Tk()
lblframe = LabelFrame(application, width=300, height=300, text="Test", bd=10).pack()
btn = Button(lblframe, text="Button 1").pack()
application.mainloop()

1 个答案:

答案 0 :(得分:1)

pack()返回的值为None。因此,您要指定lblframe来保存None值,因此在创建Button小部件时,它将None作为父级传递。这导致它的父级应用程序最大化你所看到的打包(两个小部件被打包到同一个容器中)。如果您单独进行创建和包装,它将按预期工作,例如:

from tkinter import *

application = Tk()
lblframe = LabelFrame(application, width=300, height=300, text="Test", bd=10)
btn = Button(lblframe, text="Button 1")
lblframe.pack()
btn.pack()
application.mainloop()