Ich habe einige Code wie diesesWie kann ich das Ereignis in Tkinter stoppen?
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()
Wenn ich auf Leinwand klicken Ich habe „in Leinwand“ Nachricht in der Konsole. Wenn ich auf Oval klicke] habe ich zwei Nachrichten "in Oval" und "in Canvas", aber ich möchte nur die erste Nachricht haben. Gibt es eine Möglichkeit, die Ereigniserhöhung zu stoppen?
Ich kann diese Aufgabe mit einigen globalen Flagge tun, aber ich denke, es sollte mehr natürliche Weise für Tkl.
Sie haben den einfachsten Weg gefunden, 'return 'break'' funktioniert nicht für Canvas-Tag-Bind. – mmgp
Zugehörig: [Python tkinter: Stoppen der Ereignisausbreitung in Textwidget-Tags] (http://stackoverflow.com/questions/13066773/python-tkinter-stopping-event-propagation-in-text-widgets-tags/13076458) – phoibos