私は、コンソールで「キャンバスの」メッセージを持ってキャンバスをクリックすると、私はこの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()
のようないくつかのコードを持っています。 楕円形をクリックすると、「楕円形」と「キャンバス」の2つのメッセージが表示されますが、最初のメッセージのみを表示します。イベントを停止する方法はありますか?
私はいくつかのグローバルフラグでこのタスクを実行できますが、私はTklにとってより自然な方法があるはずです。ここで
あなたは最も簡単な方法を見つけました。キャンバスタグのバインドで 'return 'break''が機能しません。 – mmgp
関連:[Python tkinter:テキストウィジェットタグ内のイベントの伝播を停止する](http://stackoverflow.com/questions/13066773/python-tkinter-stopping-event-propagation-in-text-widgets-tags/13076458) – phoibos