wxPython RichTextCtrl намного медленнее, чем tkInter Text?
-
21-08-2019 - |
Вопрос
Я создал небольшой инструмент, который анализирует фрагмент текста, выполняет некоторую простую обработку (извлекает значения из словаря, несколько регулярных выражений и т.д.), А затем выдает результаты.
Чтобы упростить чтение результатов, я создал два графических порта, один с помощью tkInter, а другой с помощью wxPython, поэтому выходные данные красиво отображаются в текстовой области с некоторыми словами, имеющими разные цвета.
Реализация tkInter использует Tkinter.Text
объект и для применения цветов к словам использует теги (сконфигурированные с помощью метода Tkinter.Text.tag_config
и передавая их Tkinter.Text.insert
), и измеренное при выводе около 400 слов разного цвета равно < 0,02с.
Реализация wxPython использует wx.richtext.RichTextCtrl
и применить цвета к словам , использующим wx.richtext.RichTextCtrl.BeginTextColour
и тогда wx.richtext.RichTextCtrl.AppendText
;производительность смехотворна, требуется около 1,4 с, чтобы выполнить ту же работу, которая заняла всего 0,02 с для порта tkInter.
Является ли это внутренней проблемой виджета RichTextCtrl, привязок wxPython, или есть какой-то способ ускорить это?
Спасибо!
Решение
Я копирую сюда комментарий, который решил проблему:
Вы пробовали использовать Freeze() и Thaw() только для обновления отображения после завершения добавления цветного текста?– mghie 30 июня в 7:20
Другие советы
Это как бы немного позволяет избежать вопроса, но не могли бы вы вместо этого использовать wxStyledTextCtrl?