Как создать клавишу tab для удаления вставленного текста в записи, когда он переходит к следующему окну ввода tkinter

#python #tkinter

#python #tkinter

Вопрос:

Когда я нажимаю клавишу tab и когда курсор меняет запись, он мгновенно удаляет текст внутри, но в моем случае он совпадает с текстом, а затем удаляется. Как удалить вставленный текст, когда курсор изменяет запись, например, в случае сопоставления с ней? Первый эффект:

введите описание изображения здесь

Код

 def func(event):
    e2.delete(0, "end")
                         #e2 - entry password

e2.bind("<Tab>",func)
  

Комментарии:

1. Показывает ли изображение результат переключения фокуса с username записи на password запись нажатием tab клавиши? Если да, то это обычный результат, основанный на вашем опубликованном коде. Чего именно вы хотите в этом случае?

2. да, и когда я нажимаю tab еще раз, он удаляет текст, но мне нужно, чтобы он сдвигался, как только он мгновенно удалялся

3. Тогда вы должны привязать на <FocusIn> вместо <Tab> .

4. e2.bind('<FocusIn>',lambda event: e2.delete(0,END)) Работает ли это?

5. Да, это тоже работает!!!

Ответ №1:

Когда у вас есть несколько записей, и вы нажимаете, Tab вы переходите от виджета к другому и e1 теряете фокус и e2 набираете фокус, так почему бы вам не попробовать:

 e2.bind('<FocusIn>',lambda event: event.widget.delete(0,END))
  

Или, если вы хотите использовать свой func() , тогда скажите:

 def func(event):
    event.widget.delete(0,END)
e2.bind('<FocusIn>',func)
  

Вы также могли бы сделать наоборот тоже

Дайте мне знать, если возникнут какие-либо ошибки или сомнения

Приветствия

Комментарии:

1. Лучше использовать event.widget.delete(0, END) вместо e2.delete(0, END) , тогда func() можно привязать к разным полям ввода.