【发布时间】:2012-07-12 11:40:26
【问题描述】:
在下面的代码块中,点击a_frame 会触发事件处理程序on_frame_click,但点击a_label 不会触发a_frame 的子事件。有没有办法强制a_frame 捕获和处理源自其子级的事件(最好不必直接向子级添加处理程序)?我正在使用 Python 3.2.3。
import tkinter
def on_frame_click(e):
print("frame clicked")
tk = tkinter.Tk()
a_frame = tkinter.Frame(tk, bg="red", padx=20, pady=20)
a_label = tkinter.Label(a_frame, text="A Label")
a_frame.pack()
a_label.pack()
tk.protocol("WM_DELETE_WINDOW", tk.destroy)
a_frame.bind("<Button>", on_frame_click)
tk.mainloop()
【问题讨论】: