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

时间:2015-07-17 23:45:31

标签: python tkinter size frame

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

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()

1 个答案:

答案 0 :(得分:0)

您正在调用pack_propagate,但之后使用grid来实际布置小部件。如果您使用的是grid,则必须致电grid_propagate

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

我已经使用了tkinter超过几十年,而且我需要将几何传播关闭的时间我可能只能依靠一只手,手指留下。