wxPython RichTextCtrl mucho más lento que tkInter de Texto?
-
21-08-2019 - |
Pregunta
He hecho una pequeña herramienta que analiza un fragmento de texto, hace algunos procesamiento simple (recupera los valores de un diccionario, un par de regex, etc.) y luego escupe los resultados.
Con el fin de hacer más fácil la lectura de los resultados, he hecho dos gráficos puertos, uno con tkInter y otros con wxPython, por lo que la salida se muestran perfectamente en un Área de Texto con algunas de las palabras que tienen diferentes colores.
El tkInter aplicación utiliza Tkinter.Text
objeto y aplicar los colores a las palabras que usa etiquetas (configurado con el método Tkinter.Text.tag_config
y pasando a Tkinter.Text.insert
), y el medido al mismo tiempo, generar cerca de 400 diferentes colores de las palabras es < 0.02 s.
El wxPython aplicación utiliza wx.richtext.RichTextCtrl
y para aplicar los colores a las palabras que utiliza wx.richtext.RichTextCtrl.BeginTextColour
y, a continuación, wx.richtext.RichTextCtrl.AppendText
;el rendimiento es ridículo, toma apero 1.4 s para hacer el mismo trabajo que sólo tomó 0.02 s a la tkInter puerto.
Es este un problema intrínseco de la RichTextCtrl widget, el wxPython enlaces, o hay alguna manera de acelerar?
Gracias!
Solución
estoy copiando aquí el comentario de que resolvió el problema:
¿Ha intentado utilizar Freeze () y Descongelar () para actualizar sólo la pantalla después de haber terminado añadiendo el texto de color? - mghie 30 de Jun a las 07:20
Otros consejos
En cierto modo se evita la pregunta un poco, pero podría utilizar en lugar wxStyledTextCtrl?