Python Tkinter无法取消绑定三次单击

Python Tkinter无法取消绑定三次单击,python,python-2.7,user-interface,tkinter,binding,Python,Python 2.7,User Interface,Tkinter,Binding,所以我有一些标签(用户制作的字符串),它们随时显示在文本小部件中。基本上,如果有标签显示,你需要能够三次点击他们,这将导致一个编辑菜单。但如果没有任何标签显示,我不希望人们能够三次点击它 因此,我的想法是,如果有标记要显示,则将三次单击绑定到相应的函数,如果没有任何标记要显示,则取消绑定 for tag in sorted(tags_pre_listed):#This loop will just check the tags and OK them for use. if tag[0:

所以我有一些标签(用户制作的字符串),它们随时显示在文本小部件中。基本上,如果有标签显示,你需要能够三次点击他们,这将导致一个编辑菜单。但如果没有任何标签显示,我不希望人们能够三次点击它

因此,我的想法是,如果有标记要显示,则将三次单击绑定到相应的函数,如果没有任何标记要显示,则取消绑定

for tag in sorted(tags_pre_listed):#This loop will just check the tags and OK them for use.
    if tag[0:4]=='TAG-' and tag not in used_tags: # Just avoids duplicates.
        tags_display_box.insert(Tk.END, '#'+tag[4:]+' ') #inserts the tag to the display.
        used_tags.append(tag)
if len(used_tags)>0:                   #If any tags were used to display, it will bind Triple click.
    tags_display_box.bind("<Triple-1>", delete_tag)
else:                                  #This is where it tries to unbind if there are no tags, but fails.
    tags_display_box.unbind('<Button-1>',"<Triple-1>") 
抱歉,就我所知,这可能是一个新手的答案,但我已经做了研究,根本找不到解决办法

非常感谢您的阅读和任何建议

线路:

tags_display_box.unbind('<Button 1>',"<Triple-1>") 
标签显示框。解除绑定(“”“”)
应改为:

tags_display_box.unbind('<Triple-1>') 
标签显示框。解除绑定(“”)
实际上,您正在尝试从不存在的命令中解除未绑定的内容的绑定。

行:

tags_display_box.unbind('<Button 1>',"<Triple-1>") 
标签显示框。解除绑定(“”“”)
应改为:

tags_display_box.unbind('<Triple-1>') 
标签显示框。解除绑定(“”)

实际上,您正在尝试从不存在的命令中解除未绑定的内容的绑定。

我认为
是左按钮的右事件格式。尝试将
替换为
@a874 good spot,我修复了该问题,并将在我的帖子中更新代码,但遗憾的是,我仍然遇到了相同的错误。。。T-TI认为
是左按钮的右事件格式。尝试用
@a874 good spot替换
,我修复了这个问题,并将在我的帖子中更新代码,但遗憾的是,我仍然遇到了相同的错误。。。你是个美丽的人!XD谢谢,成功了!如果你愿意的话,你能通过评论进一步阐述一下吗?我不太明白为什么会有效果,我只知道它有效果,哈哈。再次感谢!我对tcl/tk并不是很了解,但据我所知,tkinter是tcl/tk的一个薄薄的包装。在原始tcl/tk中,您在tcl中定义函数,然后使用“bind”将键或鼠标按钮绑定到它们。然后,您可以解除键的绑定,保留已定义的函数;或者,您可以解除键绑定并“取消定义”tcl函数。有了这个额外的参数,解释器试图找到一个名为
的函数并将其删除。你这个漂亮的人!XD谢谢,成功了!如果你愿意的话,你能通过评论进一步阐述一下吗?我不太明白为什么会有效果,我只知道它有效果,哈哈。再次感谢!我对tcl/tk并不是很了解,但据我所知,tkinter是tcl/tk的一个薄薄的包装。在原始tcl/tk中,您在tcl中定义函数,然后使用“bind”将键或鼠标按钮绑定到它们。然后,您可以解除键的绑定,保留已定义的函数;或者,您可以解除键绑定并“取消定义”tcl函数。使用额外的参数,解释器试图找到名为
的函数并将其删除。