Я проектирую Tkinter GUI, в котором используются кнопки-флажки для отображения доступных последовательных портов в системе. Пользователь сможет проверить, к каким портам он хочет подключиться, и должен сделать это, либо щелкнув по нужным флажкам, либо перейдя к каждой кнопке Checking, нажав клавишу Tab и затем нажав клавишу Return, чтобы выбрать / отмените выбор каждого, кого они хотят. Я столкнулся с ошибкой. Все работает, кроме навигации по вкладкам. При навигации по полям моего GUI с помощью клавиши Tab, когда я нажимаю клавишу Tab, чтобы перейти к COM1 (слева), и нажимаю клавишу ввода, он только включает и выключает COM3. Затем, когда я снова нажму клавишу Tab, чтобы перейти к COM3 (справа), COM3 все равно будет переключаться. Я хочу, чтобы любое поле, которое выделено, было привязано к клавише Return. Используя приведенный ниже пример, когда выделен COM1, нажатие Return включает / выключает COM1 вместо COM3


Моя функция принимает список значений и объект фрейма, создает Checkbutton для каждого значения в списке, добавляет Checkbutton в список и возвращает его. В случае с моими фотографиями список был [COM1, COM3]
def make_checkboxes(frame, checkbox_list):
"""
Description: Make a series of Checkboxes for each value in the passed in list
:param frame: frame where all checkboxes will be placed
:param checkbox_list: list of values that each need a checkbox
:return: a checkbox entry list
"""
boolean_list = []
check_box = {}
created_check_boxes = []
for value in checkbox_list:
# Create boolean for the current checkbox, set it to off
boolean = IntVar()
boolean.set(0)
# Create checkbox with boolean that toggles it
check_box = Checkbutton(frame, text=value, variable=boolean)
check_box.pack()
check_box.bind('<Return>', lambda e: toggle_check_box(boolean))
created_check_boxes.append(check_box[value])
return created_check_boxes
def toggle_check_box(check_box_obj):
"""
Description: Toggles a check box on and off when <Return> key is pressed
:param boolean: The current state of a checkbox
"""
if check_box_obj.get() == 1:
check_box_obj.set(0)
elif check_box_obj.get() == 0:
check_box_obj.set(1)