2010-12-09 38 views
1

Je veux créer une barre d'outils pour un widget texte qui vous permet de sélectionner du texte en gras ou en italique, ainsi que leur combinaison (ensemble gras et en italique).Gérer plusieurs balises dans un widget Texte lorsque chaque balise ajoute un style au texte?

J'ai regardé cette réponse à Advanced Tkinter text box, aussi bien que le code pour le widget StyledText, mais ni répond à ma question.

La méthode de base pour configurer des tags:

txtWidget.tag_configure("bold", font=my_bold_font) 
txtWidget.tag_configure("italic", font=my_italic_font) 

Cela signifie que vous pouvez associer une police unique avec une seule étiquette, mais il ne semble pas être une façon (à la surface) pour associer des combinaisons de balises avec une police

est la meilleure façon de procéder pour créer un événement tag_bind à une méthode qui comprendre mes combinaisons de balises et d'attribuer la police en conséquence, ou est-il une autre façon?

Répondre

2

Malheureusement, c'est l'un des rares faiblesses du widget texte. Si vous voulez à la fois gras et italique vous avez besoin d'un tag avec une police qui a ces deux attributs. Vous pouvez créer de nouvelles balises à la volée, ce n'est pas un problème impossible à résoudre, mais il peut être fastidieux de déterminer quels caractères d'une plage ont besoin de la balise "bold", qui a besoin de la balise "italic". un nouveau tag "bold_italic".

+0

Avez-vous une solution implémentée peut-être? – nbro

+0

@Xenomorph: non. Je l'ai fait, mais je ne sais pas où est le code. Je l'ai probablement fait en Tcl plutôt qu'en Python. –