问题描述
我一直在 frame小部件上使用 Tkinter Python tutorial。
(在使用框架小部件为框架分配小部件小节下。按该短语搜索即可轻松到达。)
frame_a=tk.Frame()
frame_b=tk.Frame()
label_a=tk.Label(text="I am frame A")
label_a.master=frame_a
label_a.pack()
label_b=tk.Label(text="I am frame B")
label_b.master=frame_b
label_b.pack()
frame_a.pack()
frame_b.pack()
运行此代码时,它成功提供了的输出。
考虑最后两行;该教程建议更改顺序,并将frame_b.pack()
放在frame_a.pack()
之前,这将使“我是B帧” 出现在顶部,因为 frame_b 首先打包。
但是,我得到的输出与以前相同。我在做什么错呢? (代码运行没有错误。)
解决方法
正如@Brian所说,label_a.master()不执行任何操作,因此请像这样移动label.pack()命令:
frame_a=tk.Frame()
frame_b=tk.Frame()
label_a=tk.Label(text="I am frame A")
label_b=tk.Label(text="I am frame B")
label_b.pack()
label_a.pack()#Moved
frame_b.pack()
frame_a.pack()