WxPython RichTextCtrl viel langsamer als tkinter Text?
-
21-08-2019 - |
Frage
Ich habe ein kleines Tool gemacht, die ein Stück Text analysiert, hat einige einfache Verarbeitung (Werte aus einem Wörterbuch abruft, ein paar regex, etc.) und dann spuckt die Ergebnisse.
Um einfacher zu machen, die Ergebnisse zu lesen, habe ich zwei Grafik-Ports, einer mit tkinter und andere mit wxPython, so dass der Ausgang schön in einem Textbereich mit einem paar Worten mit unterschiedlichen Farben angezeigt wird.
Die tkinter Implementierung verwendet Tkinter.Text
Objekt und die Farben auf die Worte anzuwenden verwendet Tags (konfiguriert, um mit der Methode Tkinter.Text.tag_config
und Weitergabe an Tkinter.Text.insert
) und das gemessen wird, während etwa 400 verschiedenen farbigen Worten Ausgeben <0,02 s.
Die WxPython Implementierung verwendet wx.richtext.RichTextCtrl
und die Farben auf die Worte anzuwenden verwendet wx.richtext.RichTextCtrl.BeginTextColour
und dann wx.richtext.RichTextCtrl.AppendText
; die Leistung ist lächerlich, es stößt 1.4s nimmt die gleiche Arbeit zu tun, die nur 0,02 s zum tkinter Hafen nahmen.
Ist das ein intrinsisches Problem des RichTextCtrl widget, die WxPython Bindungen, oder es gibt einen Weg, es zu beschleunigen?
Danke!
Lösung
Ich bin Kopieren Sie hier den Kommentar, der das Problem gelöst:
Haben Sie versucht, Einfrieren mit () und Thaw (), um nur die Anzeige zu aktualisieren nachdem Sie das Anhängen erfolgt die farbiger Text? - mghie 30. Juni um 7:20
Andere Tipps
Es vermeidet Art die Frage leicht, aber könnten Sie wxStyledTextCtrl statt?