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!

È stato utile?

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?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top