首页 > 解决方案 > Tkinter Python frame.pack() 命令没有给出预期的输出

问题描述

我一直在关注其frame widget的Tkinter Python 教程(在使用框架小部件将小部件分配给框架 的小节下。按该短语搜索以轻松到达那里。)

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 首先被打包。

但是,我得到与以前相同的输出。我在这里做错了什么?(代码运行没有错误。)

标签: pythonpython-3.xtkintertk

解决方案


正如@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()

推荐阅读