Способ решения этой конкретной проблемы - привязка к ButtonPress
и ButtonRelease
, которая устанавливает флаг. Затем в привязке для <Enter>
(или любого другого события) вы проверяете этот флаг.
Однако, пока кнопка нажата, вы не получите никаких событий <Enter>
. Это потому, что виджет, на который вы щелкнули, захватывает указатель и владеет им, пока вы не отпустите кнопку. Единственные события <Enter>
, которые вы получите при нажатии кнопки, - это когда вы входите в виджет, на котором изначально щелкнули.
То, что вы хотите сделать вместо этого, это привязать к <B1-Motion>
. Затем вы можете использовать координаты x / y события и winfo_containing
, чтобы определить, над каким виджетом вы находитесь.
При этом попытка смоделировать выделение по ряду меток - это большая работа, приносящая очень мало пользы. Почему бы просто не использовать текстовый виджет, в котором уже есть выделение? Вы можете настроить его так, чтобы он выглядел как набор меток (т.е. сделать фон того же цвета, что и у рамки), и вы можете отключить редактирование. Это может быть более простой путь.