Оптимизация подсветки синтаксиса pygments
Нашёл на форуме такой вопрос с ответом на него: Как сделать подсветку синтаксиса в tkinter
Воспользовался таким же подходом, но сразу увидел неудобства: набор текста очень теперь с фризами. Удалил часть кода, отвечающую за удаление тегов. Помогло, но не сильно. Подскажите пожалуйста, как можно решить эту проблему.
Ответы (1 шт):
Автор решения: insolor
→ Ссылка
Если нужно просто рабочее решение, используйте модуль tkcode.
Пример ниже создает и отображает 10000 строк, есть задержка несколько секунд, пока создастся содержимое, но при прокрутке никаких фризов нет:
import tkinter as tk
from tkcode import CodeEditor
root = tk.Tk()
code_editor = CodeEditor(root, highlighter="dracula")
code_editor.pack(fill="both", expand=True)
code_editor.content = "Текст создается..."
root.update() # Принудительно заставляем окно отобразиться
code_editor.content = "\n".join(f"print({i})" for i in range(10000))
root.mainloop()
