Tôi có một số mã như thế nàyLàm thế nào tôi có thể ngừng tăng sự kiện trong Tkinter?
from Tkinter import *
master = Tk()
def oval_mouse_click(event):
print "in oval"
def canvas_mouse_click(event):
print "in canvas"
w = Canvas(master, width = 800, height = 600)
uid = w.create_oval(390, 290, 410, 310, fill='blue')
w.tag_bind(uid, "<Button-1>", lambda x: oval_mouse_click(x))
w.bind("<Button-1>" , canvas_mouse_click)
w.pack()
mainloop()
Khi tôi bấm vào Canvas Tôi có "trong vải" thông điệp trong giao diện điều khiển. Khi tôi nhấp vào] trên Hình bầu dục, tôi có hai thông báo "trong hình bầu dục" và "trong canvas", nhưng tôi muốn chỉ có thông báo đầu tiên. Có cách nào để ngừng tăng sự kiện không?
Tôi có thể thực hiện tác vụ này với một số cờ toàn cầu nhưng tôi nghĩ rằng nên có cách tự nhiên hơn cho Tkl.
Bạn đã tìm thấy cách dễ nhất, 'return 'break'' không hoạt động đối với liên kết thẻ canvas. – mmgp
Liên quan: [Python tkinter: dừng tuyên truyền sự kiện trong thẻ tiện ích văn bản] (http://stackoverflow.com/questions/13066773/python-tkinter-stopping-event-propagation-in-text-widgets-tags/13076458) – phoibos