我正在使用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)?
由于
答案 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)