Maison > Article > développement back-end > Comment puis-je surligner du texte en fonction de motifs dans un widget de texte Tkinter ?
Surligner du texte dans un widget de texte Tkinter
Question :
Le widget de texte Tkinter est-il convient-il pour mettre en évidence un texte spécifique en fonction de motifs ?
Réponse :
Oui, le widget Texte est idéal à cet effet. En attribuant des balises aux plages de texte et en appliquant ces balises aux modèles correspondants, vous pouvez obtenir une coloration syntaxique.
Utilisation d'un widget de texte personnalisé :
Vous pouvez étendre la classe Text avec une méthode personnalisée pour mettre en évidence le texte qui correspond à un modèle donné. L'exemple suivant illustre cette approche :
<code class="python">class CustomText(tk.Text): def __init__(self, *args, **kwargs): tk.Text.__init__(self, *args, **kwargs) def highlight_pattern(self, pattern, tag, start="1.0", end="end", regexp=False): start = self.index(start) end = self.index(end) self.mark_set("matchStart", start) self.mark_set("matchEnd", start) self.mark_set("searchLimit", end) count = tk.IntVar() while True: index = self.search(pattern, "matchEnd", "searchLimit", count=count, regexp=regexp) if index == "": break if count.get() == 0: break self.mark_set("matchStart", index) self.mark_set("matchEnd", "%s+%sc" % (index, count.get())) self.tag_add(tag, "matchStart", "matchEnd")</code>
Exemple d'utilisation :
Pour appliquer des balises et surligner du texte, vous pouvez suivre ces étapes :
Par exemple :
<code class="python">text = CustomText() text.tag_configure("red", foreground="#ff0000") text.highlight_pattern("this should be red", "red")</code>
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!