在fram中放置Tkinter小部件的问题

2024-04-26 04:57:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我刚开始用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()

Tags: to对象text命令application部件tkinterbutton
1条回答
网友
1楼 · 发布于 2024-04-26 04:57:01

pack()返回的值为None。因此,您指定lblframe来保存一个None值,因此当您创建按钮小部件时,它没有将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()

相关问题 更多 >