有人可以解释为什么我的.propagate(False)无法正常工作吗?

时间:2019-04-05 19:21:48

标签: python python-3.x tkinter

我其他使用.propagate(False)来阻止我的Frame缩小以匹配小部件的大小的方法很好,但是由于某些原因,它在这里不起作用。

我尝试了不同的命令,并使用.pack和.grid,由于某种原因,我无法使其正常工作。

from tkinter import *

screen_width=1920
screen_height=1080
value=4

root = Tk()

common_product_frame = Frame(root, width=1000, height=800,highlightbackground='grey', highlightcolor='grey', highlightthickness=5)
common_product_frame.pack()
common_product_frame.propagate(False)    

text1_button = Button(common_product_frame, width=15, height=value, text="Text1", font="Tahoma 14 bold")
text1_button.grid(column=0, row=0, padx=10, pady=10)

text2_button = Button(common_product_frame, width=15, height=value, text="Text2", font="Tahoma 14 bold")
text2_button.grid(column=0, row=1, padx=10, pady=10)

root.mainloop()

我希望框架保持在1000、800的大小,但是它会围绕两个按钮收缩。

有人知道为什么吗?

1 个答案:

答案 0 :(得分:1)

它不起作用,因为propagatepack_propagate的别名,但是您正在使用grid在框架内布置小部件。 pack_propagate仅在由pack管理从站时有效。

由于您正在使用grid,因此需要使用grid_propagate。或切换为使用pack而非grid来布局按钮。