J'ai fait un petit outil qui analyse un morceau de texte, effectue un traitement simple (récupère les valeurs d'un dictionnaire, quelques regex, etc.) puis crache les résultats. Afin de faciliter la lecture des résultats, j'ai créé deux ports graphiques, l'un avec tkInter et l'autre avec wxPython, afin que la sortie soit bien affichée dans une zone de texte avec des mots ayant des couleurs différentes.wxPython RichTextCtrl beaucoup plus lent que le texte tkInter?
La mise en oeuvre de tkinter utilise Tkinter.Text
objet et pour appliquer les couleurs aux mots utilise des balises (configurées avec la méthode Tkinter.Text.tag_config
et de les transmettre à Tkinter.Text.insert
), et la mesure tout en délivrant environ 400 mots différents de couleur est < 0.02s. L'implémentation wxPython utilise wx.richtext.RichTextCtrl
et pour appliquer les couleurs aux mots utilise wx.richtext.RichTextCtrl.BeginTextColour
puis wx.richtext.RichTextCtrl.AppendText
; la performance est ridicule, il faut environ 1.4s pour faire le même travail qui n'a pris que 0.02s au port tkInter.
Est-ce un problème intrinsèque du widget RichTextCtrl, des liaisons wxPython, ou existe-t-il un moyen de l'accélérer?
Merci!
Sur quelle plate-forme travaillez-vous? J'ai remarqué que wxPython est beaucoup plus lent sur Linux que sur Windows. – balpha
Linux ... Je pourrais essayer sur Windows pour voir si ça va mieux. – fortran
Je l'ai testé sur Windows et même plus vite (maintenant ça prend environ la moitié du temps, environ 0,6s), mais il est presque trente fois plus lent que la version de tkInter: -s – fortran