Python Tkinter не может отменить тройной клик - PullRequest
0 голосов
/ 03 марта 2019

Итак, у меня есть несколько тегов (строк, созданных пользователем), они всегда отображаются в текстовом виджете.В основном, если есть теги для отображения, вам нужно иметь возможность тройного щелчка по ним, и это приведет к меню редактирования.Но если нет тегов для отображения, я не хочу, чтобы люди могли трижды щелкнуть по нему.

Поэтому моя мысль была привязать тройной клик к соответствующей функции, если есть теги для отображения,и отмените привязку, если нет никаких меток для отображения.

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

Извините, это может быть новичком, насколько я знаю, но у меня естьЯ сделал свое исследование и никак не могу обойти его. TT

Большое спасибо за чтение и за любые советы!

1 Ответ

0 голосов
/ 03 марта 2019

Строка:

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

должна выглядеть следующим образом:

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

Поскольку вы пытаетесь отсоединить что-то, что не связано с несуществующей командой.

...