Python Tkinter无法取消绑定三击

时间:2019-03-03 05:21:05

标签: 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: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>") 

我遇到的问题是

TclError: can't delete Tcl command

对不起,这可能是我所知道的所有菜鸟答案,但我已经完成了研究,而且根本无法找到解决方法

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

1 个答案:

答案 0 :(得分:2)

该行:

tags_display_box.unbind('<Button 1>',"<Triple-1>") 

应为:

tags_display_box.unbind('<Triple-1>') 

在这种情况下,您正在尝试解除绑定与不存在的命令绑定的内容。