Минимальный воспроизводимый пример кода:
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?