wxPython RichTextCtrl beaucoup plus lent que tkinter texte?
-
21-08-2019 - |
Question
Je l'ai fait un petit outil qui analyse un morceau de texte, exécute une partie simple (récupère les valeurs d'un dictionnaire, quelques expressions régulières, etc.) et recrache ensuite les résultats.
Afin de faciliter la lecture des résultats, j'ai fait deux ports graphiques, avec un tkinter et d'autres avec wxPython, de sorte que la sortie est bien affiché dans une zone de texte avec des mots ayant des couleurs différentes.
La mise en oeuvre de tkinter utilise Tkinter.Text
objet et d'appliquer les couleurs des mots utilise des balises (configurées avec la méthode Tkinter.Text.tag_config
et de les transmettre à Tkinter.Text.insert
), et le délivrer en sortie mesurée pendant environ 400 mots différents de couleur est < 0.02s.
La mise en œuvre utilise wxPython et d'appliquer wx.richtext.RichTextCtrl
les couleurs aux mots et usages wx.richtext.RichTextCtrl.BeginTextColour
wx.richtext.RichTextCtrl.AppendText
; la performance est ridicule, il faut buter 1.4s pour faire le même travail que ne se 0,02s au port tkinter.
Est-ce un problème intrinsèque du widget RichTextCtrl, les liaisons wxPython, ou il y a un moyen de l'accélérer?
Merci!
La solution
Je copie ici le commentaire qui a résolu le problème:
Avez-vous essayé d'utiliser Freeze () et Thaw () pour mettre à jour uniquement l'affichage Une fois que vous avez terminé le annexant texte de couleur? - mghie 30 juin à 07h20
Autres conseils
Il évite type de question un peu, mais pourriez-vous utiliser wxStyledTextCtrl à la place?