在 tkinter 中使用 grid_propagate(False)

0Co*_*ool 1 python methods grid tkinter

我正在创建一个Frame使用网格管理器的。我有一个Label小部件。我希望标签小部件填充到它所在的框架中。但是框架会根据标签小部件调整自身大小。我试过使用方法grid_propagate(False)。但它似乎不起作用。我不知道这是我使用它的方式还是其他原因。

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"
Run Code Online (Sandbox Code Playgroud)

Den*_*er9 5

您正在调用,grid_propagate但随后pack()用于将小部件放入其中。尝试做

self.frame.pack_propagate(False)
Run Code Online (Sandbox Code Playgroud)