Проверьте, выбран ли виджет ввода

#python #tkinter #raspberry-pi #touchscreen #raspberry-pi3

#python #tkinter #raspberry-pi #сенсорный экран #raspberry-pi3

Вопрос:

Я создаю программу на Raspberry Pi с сенсорным дисплеем. Я использую Python Tkinter, который имеет два виджета ввода и один на экранной клавиатуре. Я хочу использовать одну и ту же клавиатуру для ввода данных в обоих виджетах ввода.

Может кто-нибудь сказать мне, как я могу проверить, выбрана ли запись? Аналогично щелчку по записи с помощью мыши, и появляется курсор. Как я могу узнать это в Python Tkinter?

Спасибо.

Ответ №1:

Всегда есть виджет с фокусом клавиатуры. Вы можете запросить это с focus_get помощью метода корневого окна. Он вернет любой виджет с фокусом клавиатуры. Это окно, которое должно получать ввод с вашей клавиатуры.

Ответ №2:

Вы можете использовать события и привязки, чтобы перехватывать события FocusIn для ваших записей.

 entry1 = Entry(root)
entry2 = Entry(root)

def callback_entry1_focus(event):
    print 'entry1 focus in'

def callback_entry2_focus(event):
    print 'entry2 focus in'

entry1.bind("<FocusIn>", callback_entry1_focus)
entry2.bind("<FocusIn>", callback_entry2_focus)
  

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

1. Спасибо за ваши ответы. Оба работали, но я использовал <FocusIn> , потому что он немедленно вызывает функцию обратного вызова, что делает его очень удобным. Спасибо за вашу помощь