为什么边框的宽度不显示一次运行?

Why doesn't the width of the frame show once ran?

我指定了一个框架的宽度,然后我在其中网格化了一个按钮,要求它是它可以使用的最宽

from tkinter import *
root = Tk()
frame = Frame(root, width=100, height=100, background="#ffffff")
frame.pack()
btn = Button(frame, text="Hello").grid(row=0, column=0, sticky="we")
root.mainloop()

但它实际上并没有占据整个框架的长度,框架甚至不是白色的。如果我评论按钮行,它就可以正常工作。 这是为什么?

我可以假设这是因为您将按钮 'on' 框架放在了框架上,而不是在根目录下。 希望这会解决您的问题:

btn = Button(root, text="Hello").pack()#.grid(row=0, column=0, sticky="we")

这就是评论员要您​​做的事情。告诉您的框架不要传播到网格。

from tkinter import *

root = Tk()
frame = Frame(root, width=500, height=500, background="red")
frame.pack()
frame.grid_propagate(0) # this fixes the frame issue you are having
btn = Button(frame, text="Hello")
btn.grid(row=0, column=0, sticky="we")
root.mainloop()