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!

Foi útil?

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?

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top