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!

Était-ce utile?

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?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top