微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在Tkinter中解除绑定功能后如何再次绑定?

如何解决在Tkinter中解除绑定功能后如何再次绑定?

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

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

这不能解决我的问题,因为只有func2正在执行。我还尝试将unbind语句添加到func1和func2(在满足某些条件后运行),但是同一件事正在发生。有没有办法让此顺序运行,以便我可以与func1->解除绑定func1->与func2结合->解除func2绑定。

我只想在一幅图像中进行点选择,而不必将图像再次放在画布上。另外,有没有更好的方法解决这个问题?

解决方法

看看这个例子,在根窗口上单击两次,将使用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()

使用计数器是执行此操作的一种简便方法,不确定这是否是您要寻找的,但是您可以从这里获得一个想法。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。