python tkinter grid为什么不能用_在Python Tkinter中使用grid_propagate(False)

I am creating a frame the uses the grid manager. And I have a label widgets in it. I want the label widget to fill to the frame that it is in. But instead the frame re sizes itself to the label widget. I have tried using the method grid_propagate(False). But it does not seem to be working. I don't know if it is just the way that I am using it but can someone help me figure out why it is not working?

def fields(self):

frame_row = 0

frame_column = 0

row_count = 0

color = "red"

for i in range(50):

self.bfr2.columnconfigure(frame_column, pad=10)

self.bfr2.rowconfigure(frame_row, pad=10)

self.frame = Frame(self.bfr2, bg="grey", width=229, height=120)

self.frame.grid(row=frame_row, column=frame_column)

self.frame.grid_propagate(False) #This is where it should prevent the Frame from re sizing but it does not.

self.sum = Label(self.frame, bg="green", text="This is a summary of a note")

self.sum.pack(side=TOP, fill=BOTH)

frame_column = frame_column + 1

row_count = row_count + 1

if row_count == 2:

frame_row = frame_row + 1

frame_column = 0

row_count = 0

if color == "red":

color = "green"

else:

color = "red"

if color == "red":

color = "green"

else:

color = "red"

解决方案

You are calling grid_propagate but then using pack() to put widgets in it. Try doing

self.frame.pack_propagate(False)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值