tag_configure не работает при использовании темы ttk treeview - PullRequest
1 голос
/ 08 апреля 2020

Я создал 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 не влияет ни на что. я что-то упустил или есть другой способ сделать это?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...