Я создал древовидную таблицу в Tkinter Python и пока заполнил ее только одним элементом. Этот пункт соответствует первой строке таблицы. Цвет этой строки установлен на зеленый. Когда указанная строка выбирается путем щелчка по ней, ее цвет меняется на синий, но когда я нажимаю на пустое место, чтобы отменить выбор строки и вернуть ее к исходному цвету, это не работает; он остается синим, пока я не перезапущу приложение, что непрактично в качестве решения. Поэтому я прошу лучшего.
Спасибо всем, кто готов помочь мне в решении этой проблемы.
Нажатие на пустое место не изменит выбор.
Нажатие на пустое место внутри виджета Treeview
не меняет текущий выбор.
По умолчанию selectmode
вы можете нажать Ctrl, удерживая выбранный элемент, чтобы отменить его выбор.
Если вы хотите очистить выделение при нажатии на пустое место, вы можете сделать это внутри обратного вызова при привязке события <Button-1>
:
def on_click(event):
table = event.widget
item = table.identify_region(event.x, event.y)
if item == "nothing":
table.selection_set("") # clear selection
# assume table is the Treeview widget
table.bind("<Button-1>", on_click)
Вам придется еще раз щелкнуть строку, чтобы вернуть цвет по умолчанию.