Как изменить цвет строки Treeview при выделении?

Установил ttkthemes для использования одной темы. К сожалению в ней не реализовано изменение цвета строки при клике на неё. Как можно вручную это настроить?

То есть в самой теме не настроен фокус при нажатии на строку Treeview, из-за этого возникает ряд проблем. Надо как-то включить этот фокус, но я никак не могу понять что и где надо изменить. Помогите, пожалуйста.


Ответы (2 шт):

Автор решения: DGDays

Нашёл только один способ - лезть в tcl файлы темы и вручную менять.

Код(можно найти в файле ваша_тема.tcl, если нет, то надо вставить):

ttk::style map Treeview \
-background [list disabled $colors(-selectbg)\
        {!disabled !selected} $colors(-window) \
        selected $colors(-selectbg)] \
-foreground [list disabled $colors(-disabledfg) \
        {!disabled !selected} black \
        selected $colors(-selectfg)]

Код в первых [] реализует цвет заднего фона строки в Treeview. Вторые [] реализуют установку цвета для текста в строках.

$colors(-...) - выбор цвета из списка, который присутствует в самом начале кода каждой темы, вместо этого можно вставить самому любой цвет в формате "#номер".

→ Ссылка
Автор решения: Fox Fox

Необходимый код для настраивания Treeview из моей библиотеки функций. Переменные типа lib_background - цвета и шрифты - назначьте сами.

 import tkinter.ttk
 tkinter.ttk.Style().theme_use("clam")

 tkinter.ttk.Style().configure(style = "Treeview",
 font = lib_font_base,
 relief = "groove")

 tkinter.ttk.Style().map("Treeview",
 background=[("selected", lib_background)],
 foreground=[("selected", lib_foreground)],
 font = [("disabled", lib_font_base), ("focus", lib_font_base)],
 relief = [("disabled", "groove"), ("focus", "groove")])

 tkinter.ttk.Style().configure(style = "Treeview.Heading",
 background = lib_background,
 font = lib_font_bold,
 foreground = lib_foreground)

 tkinter.ttk.Style().map("Treeview.Heading",
 background = [("disabled", lib_background), ("focus", lib_background)],
 font = [("disabled", lib_font_bold), ("focus", lib_font_bold)],
 foreground = [("disabled", lib_foreground), ("focus", lib_foreground)])
→ Ссылка