⇨ MENU ⇨ MODULES ⇨ tkinter ⇨ controles standards ⇨ Text
tkinter.Text ( ).tag_config ( )
⇨ MENU ⇨ MODULES ⇨ tkinter ⇨ controles standards ⇨ Text
tkinter.Text ( ).tag_config ( )
DESCRIPTION.
Crée ou modifie un style de formatage d'un éditeur de texte.
SYNTAXE.
TXT_Editeur.tag_config ( format , attribut1 = valeur , ... , attributn = valeur )
TXT_Editeur ⇨ instance quelconque de tkinter.Text ( ) [ OBLIGATOIRE ]
.tag_config ( ) ⇨ appel de la méthode [ OBLIGATOIRE ]
format ⇨ style de formatage [ OBLIGATOIRE ]
attribut = valeur ⇨ attribut à modifier avec sa nouvelle valeur [ OBLIGATOIRE ]
REMARQUES.
format est un str ( ) correspondant à un nom valide de formatage. Si format n'existe pas il est créé
Si l'appel est utilisé sans aucune paire attribut = valeur, la méthode tkinter.text ( ).tag_config ( ) retourne un dict ( ) restituant tous les attributs possibles de format avec leur valeur actuelle.
Les formats, ou tags, permettent de définir des styles à appliquer aux portions de contenu auxquelles ils sont associés, mais également de leur lier des gestionnaires d'événements, afin d'obtenir des comportements spécifiques lors d'actions sur ces portions de contenu. Les formats sont répertoriés dans une pile de priorité. A chaque création de format, le nouveau format est placé sur le haut de la pile. Plus la position d'un format est haute dans la pile, plus sa priorité d’application est élevée. Il est possible de modifier l'ordre des formats dans la pile des priorités avec les méthodes tkinter.text ( ).tag_raise ( ) et tkinter.text ( ).tag_lower ( ).
Le noms des formats, ou tag, est choisi librement et peut être composé d'un nombre quelconque de caractères, mais il est fortement recommandé de ne pas employer les signes : +, - et espace. Ces caractères ayant des significations particulières dans les noms d'index relatifs, ils pourraient être mal interprétés par Python.
Un format peut être assigné à un plusieurs portions distingues, dans tout le contenu de l'éditeur de texte. Si une ou des propriétés du format sont modifiées, l'aspect de toutes les portions, qui lui sont associées, seront modifiée. Une portion de contenu, peut être associé à plusieurs formats et, dans ce cas, les propriétés des formats seront appliquées : du format ayant la priorité la moins élevée au format avec la priorité la plus élevée.
La méthode tkinter.Text ( ).tag_remove ( ) permet de dissocier une portion de contenu d'un format alors que la méthode tkinter.Text ( ).tag_delete ( ) supprime un format définitivement.
Les éditeurs de texte de tkinter dispose d'un format spécial "sel", créer en même tant que qu'eux, qui représente la ou les portions du contenu actuellement sélectionnées dans l'éditeur de texte. Les valeurs des attributs : selectBackground, selectBorderWidth, et selectForeground de l'éditeur de texte seront, respectivement, affectées attributs : background, borderwidth, et foreground du format "sel". A noter que, la modification de la valeur d'un attribut sera répercutée sur la valeur de son alter-ego.
Si l'attribut exportSelection de l'éditeur de texte est à True, toutes les portions du contenu le format "sel" feront partie du contenu exporté dans la sélection. Si la sélection est captée par un autre controle ou une autre application, alors le format "sel" sera supprimé de tous le contenu de l'éditeur de texte, mais restera fonctionnel, car le format "sel" d'un éditeur de texte ne peut pas être détruit, même avec l'utilisation de la méthode tkinter.Text ( ).tag_delete ( ).
LISTE DES ATTRIBUTS DES FORMATS.
background = couleur
Couleur du fond du contenu associé au format.
bgstipple = image
Nom du bitmap utilisé pour griser le fond du contenu associé au format, uniquement si l'attribut background est utilisé.
borderwidth = taille
Largeur de la bordure, en pixel, autour du contenu associé au format.
fgstipple = image
Nom du bitmap utilisé pour griser le texte du contenu associé au format.
font = style
Définit les caractéristiques du texte du contenu associé au format (voir l'attribut font pour plus de détails).
foreground = couleur
Couleur du texte du contenu associé au format.
justify = alignement
Alignement du texte du contenu associé au format (voir l'attribut justify pour plus de détails).
lmargin1 = espace
Retrait du bord gauche de la première ligne d'un paragraphe associé au format.
lmargin2 = espace
Retrait du bord gauche des lignes d'un paragraphe associé au format.
offset = espace
Élévation (espace > 0) ou abaissement (espace < 0) du contenu par rapport à la base de la ligne de texte courant.
overstrike = booleen
Barrer le texte du contenu associé au format si overstrike = True, ou non si overstrike = False, par défaut.
relief = style
Aspect autour du contenu associé au format (voir l'attribut relief pour plus de détails).
rmargin = espace
Retrait du bord droit des lignes d'un paragraphe associé au format.
spacing1 = espace
Espace à ajouter au dessus de chaque paragraphe associé au format.
spacing2 = espace
Espace à ajouter entre les lignes d'un paragraphe associé au format.
spacing3 = espace
Espace à ajouter au dessous de chaque paragraphe associé au format.
tabs = definition
Description des espacements générés par la touche tabulation dans le contenu associé au format.
underline = booleen
Souligner le texte du contenu associé au format si underline = True, ou non si underline = False, par défaut.
wrap = style
Définit la cassure des lignes du contenu associé au format
EXEMPLE.
import tkinter
def FNC_Appliquer ( ) :
try :
kformat = LAB_Format [ "text" ]
if kformat == "" :
LAB_Message [ "text" ] = f"Créez d'abord un format (tag) ..."
return
TXT_Editeur.tag_add ( kformat , "sel.first" , "sel.last" )
LAB_Message [ "text" ] = f"{ kformat } a été appliqué ..."
except :
LAB_Message [ "text" ] = f"Faites une sélection ..."
def FNC_Dissocier ( ) :
try :
kformat = LAB_Format [ "text" ]
if kformat == "" :
LAB_Message [ "text" ] = f"Créez d'abord un format (tag) ..."
return
TXT_Editeur.tag_remove ( kformat , "sel.first" , "sel.last" )
TXT_Editeur.tag_remove ( "sel" , "sel.first" , "sel.last" )
LAB_Message [ "text" ] = f"{ kformat } a été dissocié ..."
except :
LAB_Message [ "text" ] = f"Faites une sélection ..."
def FNC_Modifier ( ) :
kformat = LAB_Format [ "text" ]
if kformat == "" :
LAB_Message [ "text" ] = f"Créez d'abord un format (tag) ..."
return
kencre = SPI_Encre.get ( )
kfond = SPI_Fond.get ( )
kstyle = SPI_Style.get ( )
TXT_Editeur.tag_config ( kformat , foreground = kencre , background = kfond , font = ( None , 10 , kstyle ) )
LAB_Message [ "text" ] = f"{ kformat } ({ kencre } sur { kfond } en { kstyle } )"
def FNC_Nouveau ( ) :
kvaleur = len ( TXT_Editeur.tag_names ( ) )
kformat = f"Format_{ kvaleur }"
LAB_Format [ "text" ] = f"{ kformat }"
FNC_Modifier ( )
BOX_Liste.delete ( 0 , "end" )
for kformat in TXT_Editeur.tag_names ( ) :
if kformat != "sel" : BOX_Liste.insert ( "end" , kformat )
FNC_Appliquer ( )
def FNC_Selection ( event ) :
try :
kformat = BOX_Liste.get ( BOX_Liste.curselection ( ) )
kencre = TXT_Editeur.tag_cget ( kformat , "foreground" )
kfond = TXT_Editeur.tag_cget ( kformat , "background" )
kstyle = TXT_Editeur.tag_cget ( kformat , "font" )
LAB_Message [ "text" ] = f"{ kformat } ({ kencre } sur { kfond } en { kstyle }) est sélectionnée ..."
LAB_Format [ "text" ] = f"{ kformat }"
except :
LAB_Message [ "text" ] = f"Créez d'abord un format (tag) ..."
def FNC_Supprimer ( ) :
kformat = LAB_Format [ "text" ]
if kformat == "" :
LAB_Message [ "text" ] = f"Créez d'abord un format (tag) ..."
return
TXT_Editeur.tag_delete ( kformat )
BOX_Liste.delete ( 0 , "end" )
for kformat in TXT_Editeur.tag_names ( ) :
if kformat != "sel" : BOX_Liste.insert ( "end" , kformat )
LAB_Message [ "text" ] = f"{ kformat } a été supprimé ..."
LAB_Format [ "text" ] = ""
TKI_Principal = tkinter.Tk ( )
kcouleurs = ( "black" , "red" , "lime" , "blue" , "aqua" , "magenta" , "yellow" , "green" , "white" , "sienna" , "pink" , "palegreen" )
BUT_Quitter = tkinter.Button ( TKI_Principal , text = "Quitter" , command = TKI_Principal.destroy )
BUT_Nouveau = tkinter.Button ( TKI_Principal , text = "Créer" , command = FNC_Nouveau )
BUT_Modifier = tkinter.Button ( TKI_Principal , text = "Modifier" , command = FNC_Modifier )
BUT_Appliquer = tkinter.Button ( TKI_Principal , text = "Appliquer" , command = FNC_Appliquer )
BUT_Dissocier = tkinter.Button ( TKI_Principal , text = "Discocier" , command = FNC_Dissocier )
BUT_Supprimer = tkinter.Button ( TKI_Principal , text = "Supprimer" , command = FNC_Supprimer )
SPI_Encre = tkinter.Spinbox ( TKI_Principal , values = kcouleurs , wrap = True , width = 6 )
SPI_Fond = tkinter.Spinbox ( TKI_Principal , values = kcouleurs , wrap = True , width = 6 )
SPI_Style = tkinter.Spinbox ( TKI_Principal , values = ( "normal" , "bold" , "italic" ) , wrap = True , width = 6 )
BOX_Liste = tkinter.Listbox ( TKI_Principal )
LAB_Message = tkinter.Label ( TKI_Principal , relief = "ridge" , bd = 3 , justify = "left" , anchor = "w" )
LAB_Format = tkinter.Label ( TKI_Principal , relief = "ridge" , bd = 3 )
TXT_Editeur = tkinter.Text ( TKI_Principal , wrap = "none" , width = 80 , height = 25 )
BOX_Liste.bind ( "<ButtonRelease>" , FNC_Selection )
TXT_Editeur.grid ( row = 0 , column = 0 , columnspan = 5 , sticky = "nesw" )
BOX_Liste.grid ( row = 0 , column = 5 , sticky = "nesw" )
tkinter.Label ( TKI_Principal , text = "encre" , anchor = "s" ).grid ( row = 1 , column = 0 , sticky = "s" )
tkinter.Label ( TKI_Principal , text = "papier" , anchor = "s" ).grid ( row = 1 , column = 1 , sticky = "s" )
tkinter.Label ( TKI_Principal , text = "style" , anchor = "s" ).grid ( row = 1 , column = 2 , sticky = "s" )
LAB_Format.grid ( row = 1 , column = 5 , sticky = "nesw" )
SPI_Encre.grid ( row = 2 , column = 0 , sticky = "nesw" )
SPI_Fond.grid ( row = 2 , column = 1 , sticky = "nesw" )
SPI_Style.grid ( row = 2 , column = 2 , sticky = "nesw" )
BUT_Nouveau.grid ( row = 2 , column = 3 , sticky = "nesw" )
BUT_Modifier.grid ( row = 2 , column = 4 , sticky = "nesw" )
BUT_Supprimer.grid ( row = 2 , column = 5 , sticky = "nesw" )
LAB_Message.grid ( row = 3 , column = 0 , columnspan = 3 , sticky = "nesw" )
BUT_Appliquer.grid ( row = 3 , column = 3 , sticky = "nesw" )
BUT_Dissocier.grid ( row = 3 , column = 4 , sticky = "nesw" )
BUT_Quitter.grid ( row = 3 , column = 5 , sticky = "nesw" )
SPI_Encre.delete ( 0 , "end" )
SPI_Encre.insert ( 0 , "blue" )
SPI_Fond.delete ( 0 , "end" )
SPI_Fond.insert ( 0 , "aqua" )
TXT_Editeur.insert ( "1.0" , "Tapez votre texte ici ..." )
TXT_Editeur.focus_force ( )
TKI_Principal.mainloop ( )
Votre aide est précieuse pour améliorer ce site, alors n'hésitez pas à faire part de