在 tkinter 中取消绑定函数后如何再次绑定?

How to bind again after unbinding a functiion in tkinter?

我正在尝试在用户使用其他功能选择图像上的一些点后将按钮绑定到不同的功能。目前,我是这样做的-

canvas.bind("<Button-1>", func1)
canvas.unbind("<Button-1>")
canvas.bind("<Button-1>", func2)

这并没有解决我的问题,因为只有 func2 在执行。我还尝试将 unbind 语句添加到 func1 和 func2(在满足某些条件后 运行s),但同样的事情正在发生。有没有办法按顺序制作这个 运行 以便我可以与 func1 绑定 -> 解除绑定 func1 -> 与 func2 绑定 -> 解除绑定 func2.

我想只在一张图片中做点选择,而不是再次把图片放在canvas上。另外,有没有更好的方法来解决这个问题?

看看这个例子,一旦你在根 window 上点击两次,就会使用 func2

from tkinter import *

root = Tk()

count = 0
def func1(event):
    global count
    count += 1
    print('FUNC1')
    
    if count == 2:
        root.unbind('<Button-1>')
        root.bind('<Button-1>',func2)
        count = 0

def func2(event):
    print('FUNC2') #you can create similar logic to switch back to func1 here too 

root.bind('<Button-1>',func1)

root.mainloop()

使用计数器是一种简单的方法,不确定这是否是您要找的,但您可以从这里得到一个想法。