Ответ 1
Короткий ответ: установите атрибут exportselection
каждого списка на False
Tkinter имеет свои корни в системе окон X. X имеет концепцию под названием "выбор", которая похожа на системный буфер обмена (точнее, буфер обмена является "ПЕРВИЧНЫМ" выбором). По умолчанию некоторые из виджетов tkinter экспортируют свой выбор как выбор PRIMARY. Приложение может иметь только один выбор PRIMARY за раз, поэтому подсветка исчезает, когда вы щелкаете между двумя списками.
Tkinter дает вам контроль над этим поведением с параметром конфигурации exportselection
для списка (а также виджеты для ввода текста и ввода). Установка этого параметра на False
предотвращает экспорт выделения на выбор X, позволяя виджету сохранять свой выбор, когда другой виджет получает фокус.
Например:
the_listbox = tk.Listbox(..., exportselection=False)
Цитата из официальная документация tk:
exportselectionУказывает, должен ли выбор в виджете также быть X выбор. Значение может иметь любую форму, принятую Tcl_GetBoolean, например true, false, 0, 1, yes или no. Если выбор экспортируется, а затем выбор в виджете отменяет выбор текущий выбор X, выбор вне виджета отменяет выбор любого виджета выбор, и виджет будет реагировать на запросы на выборку когда у него есть выбор. Обычно по умолчанию для экспорта виджета выбор.