首页 > 解决方案 > Tkinter 绑定仅单击画布而不单击对象

问题描述

所以我有一个代码:

canvas.tag_bind(stvorec, '<Button-1>', clicked)
canvas.bind('<Button-1>', fail)

但我的问题是,当我单击矩形(tag_bind)时,它还会触发画布上的第二个绑定。这是我不想要的,因为我需要在单击矩形分数增量时执行类似操作,当单击矩形分数减量之外时。

标签: pythontkinter

解决方案


然后,您可以仅使用.bind()并检查绑定回调中是否单击了画布项:

score = 0

def fail(event):
    global score
    # get ID of "current" item using .find_withtag()
    if canvas.find_withtag("current"):
        # a canvas item is clicked
        score += 1
    else:
        score -= 1

...

canvas.bind("<Button-1>", fail)

推荐阅读