Как получить цвет шрифта определенной области в виджете tkinter.Text? - PullRequest
0 голосов
/ 19 июня 2020

Итак, я фактически создаю редактор кода, и, очевидно, мне нужно, чтобы код был раскрашен, когда он появляется на экране. Мне удалось это сделать, но теперь, когда редактируется уже окрашенный код , текст остается окрашенным. (например, пользователь пишет «print», и он становится цветным. Затем он стирает букву «t» с ее конца, и она становится «prin», и она все еще окрашена). Я надеялся, что есть способ определить цвет шрифта. индекса tkinter.Text. Например:

textArea.get_color("1.0", "1.4"))
# Returns: Black (or whatever color)

Таким образом, приложение может изменить его, если это неправильное слово и оно все еще окрашено. Кто-нибудь может мне помочь?

1 Ответ

2 голосов
/ 19 июня 2020

Вы можете получить цвет в любой позиции текста, сначала получив список тегов для этого символа, а затем получив цвет переднего плана тега с наивысшим приоритетом. Если тегов с цветом переднего плана нет, цвет будет любым, настроенным для текстового виджета.

Например, он может выглядеть примерно так:

def get_color(index):
    for tag in text.tag_names(index)[::-1]:
        fg = text.tag_cget(tag, "foreground")
        if fg != "":
            return fg
    return text.cget("foreground")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...