Вопрос

Я создал небольшой инструмент, который анализирует фрагмент текста, выполняет некоторую простую обработку (извлекает значения из словаря, несколько регулярных выражений и т.д.), А затем выдает результаты.

Чтобы упростить чтение результатов, я создал два графических порта, один с помощью 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?

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top