如何使用 Tkinter 和 Python2.7 控制帧大小?

How to control frame size with Tkinter and Python2.7?

我希望默认情况下有更大的帧大小,但这段代码不能那样工作。我做错了什么?

from Tkinter import *

class App:

    def __init__(self, master):
        frame = Frame(master, width=600, height=450)
        frame.grid()
        frame.pack_propagate(0)  # tell frame not to let its children control its size

        self.label_file = Label(frame, text="Enter CSV file:")
        self.label_encode = Label(frame, text="Enter encoding:")
        self.entry_file = Entry(frame)
        self.entry_encode = Entry(frame)

        self.label_file.grid(row=0, sticky=E)
        self.label_encode.grid(row=1, sticky=E)
        self.entry_file.grid(row=0, column=1)
        self.entry_encode.grid(row=1, column=1)

root = Tk()
root.wm_title("Top list")
app = App(root)
root.mainloop()

您正在调用 pack_propagate,但随后使用 grid 实际布置小部件。如果您使用 grid,则必须调用 grid_propagate

我敦促你抵制这样做的诱惑。 Tkinter 程序在打开几何传播的情况下表现得更好。如果您正在尝试解决某些特定的布局问题,可能有比关闭传播更好的解决方法。

我使用 tkinter 已经二十多年了,我需要关闭几何传播的次数我可能一只手就能数过来,剩下的手指。