wxPython RichtextCtrl muito mais lento do que tkinter texto?
-
21-08-2019 - |
Pergunta
Eu fiz uma pequena ferramenta que analisa um pedaço de texto, faz algum processamento simples (valores recupera de um dicionário, alguns regex, etc.) e depois cospe os resultados.
A fim de tornar mais fácil de ler os resultados, eu fiz duas portas gráficos, um com tkinter e outros com wxPython, então a saída é bem exibidos em uma área de texto com algumas palavras com cores diferentes.
A implementação tkinter objecto utilizações Tkinter.Text
e para aplicar as cores para as etiquetas de palavras utilizações (configurados com o método Tkinter.Text.tag_config
e passá-los para Tkinter.Text.insert
), e a medida durante a emissão de cerca de 400 palavras de cores diferentes é <0.02s.
Os usos de implementação wxPython wx.richtext.RichTextCtrl
e aplicar as cores para o wx.richtext.RichTextCtrl.BeginTextColour
palavras usos e depois wx.richtext.RichTextCtrl.AppendText
; o desempenho é ridículo, é preciso 1.4s confinar a fazer o mesmo trabalho que levou apenas 0.02s à porta tkinter.
Este é um problema intrínseco do widget RichtextCtrl, as ligações wxPython, ou há alguma maneira de acelerá-lo?
Obrigado!
Solução
Eu estou copiando aqui o comentário de que resolveu o problema:
Você já tentou usar Freeze () e Thaw () para atualizar somente a exibição depois que é feito anexando o texto colorido? - mghie 30 de junho às 7:20
Outras dicas
É o tipo de evita a pergunta um pouco, mas você poderia usar wxStyledTextCtrl vez?