tk:我需要提一下小部件大师吗?

时间:2013-08-07 15:09:34

标签: python tkinter

我想在运行时根据用户请求重新排列PanedWindows中的帧。以前我为每个帧指定了master(这里是pw1)。例如:

import Tkinter as tk

root = tk.Tk()

pw1 = tk.PanedWindow(orient=tk.HORIZONTAL, sashpad=2,
    sashwidth=4, sashrelief=tk.RAISED)
pw1.pack(fill=tk.BOTH, expand=1)

frame1 = tk.Frame(pw1, bg='red',width=100, height=100) 
frame2 = tk.Frame(pw1, bg ='yellow',width=100,height=100)

# This seems to do the same thing:
# frame1 = tk.Frame(bg='red',width=100, height=100) # vs. tk.Frame()
# frame2 = tk.Frame(bg ='yellow',width=100,height=100) 

pw1.add(frame1, sticky=tk.NSEW)
pw1.add(frame2, sticky=tk.NSEW)

root.mainloop()

指定主人有什么好处?

1 个答案:

答案 0 :(得分:0)

master参数可以解释为parent。传递此内容会在parent.children属性中添加新密钥。

如果您在未通过pw1.children 时打印master,请执行pw1.add(),您将看到它返回一个空字典。

print pw1.children
#{}

pw1.add()方法还包括pw1.children字典中添加的小部件。我仍然不明白为什么当你通过master时,小部件不会自动显示。