wxPython RichTextCtrl molto più lento di Tkinter testo?
-
21-08-2019 - |
Domanda
Ho fatto un piccolo strumento che analizza una porzione di testo, fa qualche semplice elaborazione (recupera i valori da un dizionario, un paio di regex, ecc) e poi sputa i risultati.
Al fine di rendere più facile per leggere i risultati, ho fatto due porte grafici, uno con Tkinter ed altri con wxPython, quindi l'uscita è ben visualizzato in un'area di testo con alcune parole con colori diversi.
L'attuazione tkinter utilizza Tkinter.Text
oggetto e per applicare colori alle parole utilizza tag (configurato con il metodo Tkinter.Text.tag_config
e le passa alla Tkinter.Text.insert
), e quello misurato durante l'emissione di circa 400 parole differenti colori è < 0.02s.
L'implementazione wxPython utilizza wx.richtext.RichTextCtrl
e di applicare i colori per le parole usi wx.richtext.RichTextCtrl.BeginTextColour
e poi wx.richtext.RichTextCtrl.AppendText
; la prestazione è ridicolo, ci vogliono intestano 1.4s per fare lo stesso lavoro che ha preso solo 0.02s alla porta Tkinter.
E 'questo un problema intrinseco del widget RichTextCtrl, le associazioni wxPython, o c'è qualche modo per accelerarlo?
Grazie!
Soluzione
Sono la copia qui il commento che ha risolto il problema:
Hai provato a usare Fermo () e Disgelo () per aggiornare solo il display dopo aver terminato aggiungendo il colore del testo? - mghie 30 giugno alle 7:20
Altri suggerimenti
E 'sorta di evita la domanda un po', ma potresti usare wxStyledTextCtrl invece?