Tkinter网格布局小组件不在父级中

时间:2013-07-26 12:52:34

标签: python user-interface tkinter grid-layout

我正在使用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位于主人的网格位置(0,0),而不是layout_frame。为什么它不是位于指定父级的位置(0,0)?

由于

1 个答案:

答案 0 :(得分:1)

layout_frame是调用grid的结果(无,而不是您刚创建的帧)。当小部件的父级为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)