Bonjour j'ai une classe dérivée d'un ScrolledText.
Elle possède la méthode suivante qui me sert à appliquer une couleur différente à chaque lettre (a, t, g ou c) contenue dans mon ScrolledText :
Mon problème est que pour de gros fichiers textes, c'est long!!!! 2 à 3 secondes.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 def color_seq(self): self.tag_configure("a-color", foreground ="green") self.tag_configure("t-color", foreground ="red") self.tag_configure("g-color", foreground ="black") self.tag_configure("c-color", foreground ="blue") contenu_du texte = self.get("1.0", "1.0 lineend") for i in range (len(contenu)): j = contenu[i].lower() if j == "a": self.tag_add("a-color", "1.%d" %i) elif j == "t": self.tag_add("t-color", "1.%d" %i) elif j == "g": self.tag_add("g-color", "1.%d" %i) elif j == "c": self.tag_add("c-color", "1.%d" %i)
J'ai essayé d'optimiser en faisant des listes des positions pour chaque lettre et d'appliquer le tag après, mais je n'ai pas gagné en performances. Je suppose que ma fonction est de la très mauvaise programmation alors je vous demande votre aide. Comment puis je faire pour améliorer cela?
Merci d'avance.
Partager