Я создал Treeview и изменил выбранный цвет, используя этот код:
style = self.style = ttk.Style(win)
style.theme_create("my", "vista",
settings={
'Treeview': {
'map': {
'background': [('selected', '#ffdddd'), ("!selected", "white")],
'foreground': [('selected', 'black')],
"font": [("", ("", 13))]
} # end 'map'
}, # end 'Treeview'
'TNotebook.Tab': {
'map': {
'font': [("", ("", 14))]
} # end 'map'
}, # end 'TNotebook.Tab'
'TNotebook': {
'map': {
'background': [("", "#eee")]
} # end 'map'
} # end 'TNotebook
} # end settings
)
style.theme_use("my")
Код работает нормально, но когда я пытаюсь изменить цвет фона указанных c элементов (строк), используя tag_configure метод ничего не меняет, я обнаружил, что это ошибка tkinter, решение заключается в следующем коде: (работает без использования вышеуказанной темы)
def fixed_map(option):
# Fix for setting text colour for Tkinter 8.6.9
# From: https://core.tcl.tk/tk/info/509cafafae
#
# Returns the style map for 'option' with any styles starting with
# ('!disabled', '!selected', ...) filtered out.
# style.map() returns an empty list for missing options, so this
# should be future-safe.
return [elm for elm in style.map('Treeview', query_opt=option) if
elm[:2] != ('!disabled', '!selected')]
style.map('Treeview', foreground=fixed_map('foreground'), background=fixed_map('background'))
, поэтому проблема в том, что я хочу указать выбранный фон Я не могу изменить цвет фона элементов, и tag_configure не влияет ни на что. я что-то упустил или есть другой способ сделать это?