0

我正在使用 Tkinter 在 Python 中构建一个 GUI,但是我遇到了 Grid 布局的问题。我是否正确假设如果您指定一个父级,那么该子级将坐在您在该父级中指定的网格位置?这是我的例子:

layout_frame = tk.Frame(master, bg="red").grid(row=1, column=2, rowspan=9, sticky=tk.N+tk.S+tk.W+tk.E)
inner_frame = tk.Frame(master=layout_frame, bg="red").grid(row=0, column=0, rowspan=9, sticky=tk.N+tk.S+tk.W+tk.E)

我的问题是它inner_frame位于 master 中的网格位置 (0,0),而不是layout_frame. 为什么它不在指定父级的位置(0,0)?

谢谢

4

1 回答 1

1

layout_frame是调用的结果grid(它是 None 而不是您刚刚创建的框架)。当小部件的父级为 None 时,Tkinter 将父级设置为根元素,因此您必须先创建框架并grid在单独的语句中调用。

layout_frame = tk.Frame(master, bg="red")
layout_frame.grid(row=1, column=2, rowspan=9, sticky=tk.N+tk.S+tk.W+tk.E)
inner_frame = tk.Frame(master=layout_frame, bg="red")
inner_frame.grid(row=0, column=0, rowspan=9, sticky=tk.N+tk.S+tk.W+tk.E)
于 2013-07-26T12:56:00.367 回答