Изменение шрифта текстового виджета tkinter без переопределения существующего текста (только будущий текст) - PullRequest
0 голосов
/ 27 февраля 2020

Минимальный воспроизводимый пример кода:

import tkinter as tk
from tkinter import colorchooser

root = tk.Tk()

# iterate and increment count to create indexed tag names
count = 0

# creates a function that colors text selection and no text selection
def color_picker():
    global count
    # creates the color picker prompt
    color = tk.colorchooser.askcolor()

    # color text selection
    if text_area.tag_ranges('sel'):
        text_area.tag_add('colortag_' + str(count), tk.SEL_FIRST, tk.SEL_LAST)
        text_area.tag_config('colortag_' + str(count), foreground=color[1])

        count += 1

    # color untagged text in case of no text selection
    else:
        text_area.config(foreground=color[1])


# the used field for typing text
text_area = tk.Text(root, width=30, height=1)
text_area.pack()

# new button to invoke color_picker()
color_btn = tk.Button(root, text='Pick color', command=color_picker).pack()

root.mainloop()

Желаемый результат: Я ищу варианты, где, если текст не выбран, изменится только цвет шрифта будущего текста .

Текущий результат: Если не выделено ни текста, ни цвет шрифта будущего текста, ни предыдущий текст.

Обновление № 1: I ' Вы рассматривали возможность пометки текста при нажатии клавиши, есть ли у кого-нибудь идея о жизнеспособности и синтаксисе такого решения? Оптимально это можно применить к Bold, Highlight, Overstrike и Underline. Для последнего первым индексом может быть включение Bold, а последним индексом - Bold off?

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