⇨ MENU ⇨ MODULES ⇨ tkinter ⇨ extension ttk ⇨ Style
tkinter.ttk.Style ( ).map ( )
⇨ MENU ⇨ MODULES ⇨ tkinter ⇨ extension ttk ⇨ Style
tkinter.ttk.Style ( ).map ( )
DESCRIPTION.
Définie dynamiquement la valeur de l'attribut du style quand un des controles associé se trouve dans un état précisé.
SYNTAXE.
Valeur = STY_Theme.map ( style , mappageA , ... , mappageN )
Valeur = ⇨ variable qui recevra la valeur [ optionnel ]
STY_Theme = ⇨ instance quelconque de tkinter.ttk.Style ( ) [ OBLIGATOIRE ]
.map ( ) ⇨ appel de la méthode [ OBLIGATOIRE ]
style ⇨ identifiant du style [ OBLIGATOIRE ]
mappage ⇨ mappage d'un attribut [ OBLIGATOIRE ]
REMARQUES.
style est un str ( ) identifiant un nom de style. Si style n'existe pas dans le thème de styles actuellement utilisé par l'interface graphique, il est créé. style doit avoir la forme :
- ".", qui est le style ancêtre de tous les autres styles du thème ;
- "defaut", où defaut est le nom du style par défaut du type de controle, par exemple "TButton" ;
- "prefixe.defaut", où prefixe.defaut est le nom d'un style obtenu après clonage de defaut, par exemple "boss.TButton".
mappage est est constitué du nom d'un attribut du style et d'un objet collection tel que list ( ) ou tuple ( ) donc les éléments sont des tuple ( ) de deux élément, le premier est le nom de l'état à considérer et le deuxième la valeur à appliquer quand le controle se trouve dans l'état accouplé, suivant la forme suivante : attribut = [ ( "etatA" , valeur ) , ... , ( "etatN" , valeur ) ]
La liste des attributs possibles, pour un style donné, dépend de la nature du controle qui est associé à ce style. Pour connaitre les attributs de mise en forme d'un type de controle tkinter.ttk, il faut se référé à son homologue tkinter, s'il existe, sinon à la définition du controle tkinter.ttk.
Un controle peut se trouver dans l'un de ces états :
- "active" , quand le pointeur de la souris est sur le controle ;
- "alternate" , quand le contorle est affiché dans un mode alternatif ;
- "backgroud", quand le fond du controle est actif, pour certains Windows et MaOs ;
- "disabled" , quand le controle est désactivé, insensible au action de l'utilisateur ;
- "focus" , quand le controle obtient le focus, les saisies aux clavier sont dirigées vers lui ;
- "hover" , quand le controle à le curseur d'insertion ;
- "invalid" , quand le controle reçoit une valeur non acceptable, par exemple pour une échelle de valeurs ;
- "pressed" , quand l'utilisateur clique sur le controle ;
- "readonly" , quand le controle est en lecture seul, l'utilisateur ne peut pas le modifier ;
- "selected" , quand un bouton radio ou une case à choix sont cochées ;
A noter : La valeur d'un l'attribut pour l'état "normal" est celle donnée avec la méthode tkinter.ttk.Style ( ).configure ( ). Il ne faut donc pas le modifier à l'aide de la méthode tkinter.ttk.Style ( ).map ( ), sinon Python lèvera une exception.
Voir aussi la méthode tkinter.ttk.Style ( ).layout ( ) pour plus détails.
Voir le tutoriel sur les styles tkinter.ttk pour plus d'informations.
EXEMPLE.
import tkinter , tkinter.ttk
def FNC_Etat ( ) :
BUT_Quitter [ "state" ] = "normal" if BUT_Quitter.instate ( [ "disabled" ] ) else "disabled"
TKI_Principal = tkinter.Tk ( )
STY_Theme = tkinter.ttk.Style ( )
STY_Theme.configure ( "Test.TButton" , foreground = "yellow" , background = "red" , borderwidth = 10 )
STY_Theme.map ( "Test.TButton" ,
foreground = [ ( "pressed" , "red" ) , ( "active" , "blue" ) , ( "disabled" , "black" ) ] ,
background = [ ( "pressed" , "lime" ) , ( "active" , "orange" ) , ( "disabled" , "aqua" ) ] ,
relief = [ ( "pressed" , "ridge" ) , ( "active" , "groove" ) , ( "disabled" , "solid" ) ] )
BUT_Quitter = tkinter.ttk.Button ( TKI_Principal , text = "Quitter" , style = "Test.TButton" , command = TKI_Principal.destroy )
BUT_Etat = tkinter.ttk.Button ( TKI_Principal , text = "Modifier l'état" , command = FNC_Etat)
BUT_Etat.pack ( )
BUT_Quitter.pack ( )
TKI_Principal.mainloop ( )
Votre aide est précieuse pour améliorer ce site, alors n'hésitez pas à faire part de