在框架内放置 Tkinter 小部件的问题
Issue with placing Tkinter widgets within frame
我刚开始使用 Tkinter,但遇到了一个非常简单的问题,这让我抓狂。我试图在标签框架内放置一个按钮。这是一个非常简单的任务,网上有很多教程。只需创建按钮并将框架指定为父级即可。然后使用 pack 命令将小部件打包到其父级中。但是,当我这样做时,按钮 - 或任何小部件 - 始终位于父级之下。无论我使用 pack 还是 grid,子 widget 总是在它下面。 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()
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()
我刚开始使用 Tkinter,但遇到了一个非常简单的问题,这让我抓狂。我试图在标签框架内放置一个按钮。这是一个非常简单的任务,网上有很多教程。只需创建按钮并将框架指定为父级即可。然后使用 pack 命令将小部件打包到其父级中。但是,当我这样做时,按钮 - 或任何小部件 - 始终位于父级之下。无论我使用 pack 还是 grid,子 widget 总是在它下面。 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()
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()