Tkinter Python frame.pack命令未提供预期的输出

问题描述

我一直在 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()  

运行此代码时,它成功提供了

this

输出
考虑最后两行;该教程建议更改顺序,并将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()