2

我想根据用户请求在运行时重新排列 PanedWindows 中的帧。以前我为每一帧指定了主控(这里是 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()

指定master有什么好处?

4

1 回答 1

0

master参数可以解释parent为。传递这个将在parent.children属性中添加一个新键。

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

print pw1.children
#{}

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

于 2013-08-07T16:02:45.523 回答