⇨ MENU ⇨ MODULES ⇨ tkinter ⇨ boites de dialogue
tkinter.colorchooser.askcolor ( )
⇨ MENU ⇨ MODULES ⇨ tkinter ⇨ boites de dialogue
tkinter.colorchooser.askcolor ( )
DESCRIPTION.
Ouvre une boite de dialogue, proposant à l'utilisateur de sélectionner une couleur, puis retourne un tuple ( ) contenant la composition et le code hexadécimal de la couleur sélectionnée.
SYNTAXE.
TPL_Couleur = tkinter.colorchooser.askcolor ( couleur , titre )
TPL_Couleur = ⇨ variable qui recevra le tuple ( ) [ optionnel ]
tkinter.colorchooser.askcolor ( ) ⇨ appel de la méthode [ OBLIGATOIRE ]
couleur ⇨ code de la couleur à faire apparaitre dans la boite de dialogue [ optionnel ]
titre ⇨ titre à afficher dans la barre de controle de la boite de dialogue [ optionnel ]
REMARQUES.
couleur doit être un mode valide d'identification d'une couleur dans Python, cela peut être :
- un str ( ) donnant un nom standardisé d'une couleur, par exemple "green" ;
- un str ( ) exprimant le code d'une couleur au format hexadécimal, par exemple "#64ab17" ;
- un tuple ( ) de trois int ( ), entre 1 et 255, précisant les quantités de rouge, vert et bleu, par exemple ( 14 , 234 , 127 ) ;
Voir les couleurs avec tkinter pour plus de d'informations sur la désignation des couleurs.
titre doit être un str ( ) quelconque mais valide. titre apparaitra dans le bandeau situé en haut de la boite de dialogue. Attention, le titre d'une fenêtre n'est pas son nom, ni son identifiant. On ne peut pas appeler la boite de dialogue en utilisant son titre pour l'identifier.
La méthode tkinter.colorchooser.askcolor ( ) retourne un tuple ( ) de 2 éléments sous la forme ( ( r , g , b ) , "#rrggbb" ) :
- le premier élément est un tuple ( ) de 3 float ( ), entre 0 et 255,99999999, donnant la quantité de rouge, de vert et de bleu ;
- le deuxième élément est un str ( ) indiquant le valeur hexadécimal de la couleur.
Si l'utilisateur clique sur le bouton "annuler" de la boîte de sélection, le tuple ( ) retourné sera ( None, None ).
La méthode tkinter.colorchooser.askcolor ( ) n'est pas native du module tkinter, il faut donc commencer par importer le module tkinter.colorchooser pour pouvoir utiliser cette méthode. Voir import pour plus de détails sur l'incorporation de modules, classes et méthodes non built-in dans un script
Bien que cela soit fortement déconseiller, il n'est pas nécessaire d'importer le module le module tkinter avant le module tkinter.colorchooser. En effet le module tkinter sera automatiquement importé avec le module tkinter.colorchooser. De même il n'est pas utile de créer une instance de la classe Chooser ( ) pour appeler la méthode tkinter.colorchooser.askcolor ( ).
import tkinter.colorchooser
print ( tkinter.colorchooser.askcolor ( ) )
EXEMPLES.
1. Pour changer simplement un attribut de couleur.
import tkinter.colorchooser
def FNC_Couleur ( ) :
kcouleur = tkinter.colorchooser.askcolor ( title = f"Choissisez une couleur ..." )
if kcouleur [ 0 ] == None : return
TKI_Principal [ "background" ] = kcouleur [ 1 ]
TKI_Principal = tkinter.Tk ( )
TKI_Principal.geometry ( "160x120" )
tkinter.Button ( TKI_Principal , text = "Choisir" , command = FNC_Couleur ).pack ( )
tkinter.Button ( TKI_Principal , text = "Quitter" , command = TKI_Principal.destroy ).pack ( )
2. Lecture et analyse du tuple ( ) retourné.
import tkinter
import tkinter.colorchooser
def FNC_Couleur ( Q ) :
kcouleur = tkinter.colorchooser.askcolor ( Q , title = f"Couleur de départ : { Q }." )
if kcouleur [ 0 ] == None : return
krouge = int ( kcouleur [ 0 ] [ 0 ] )
kvert = int ( kcouleur [ 0 ] [ 1 ] )
kbleu = int ( kcouleur [ 0 ] [ 2 ] )
kcode = kcouleur [ 1 ]
ktexte = f"Rouge : { krouge }\nvert : { kvert }\nbleu : { kbleu }\nCode hexadécimal : { kcode }"
LAB_Couleur [ "text" ] = ktexte
TKI_Principal = tkinter.Tk ( )
BUT_Quitter = tkinter.Button ( TKI_Principal , text = "Quitter" , command = TKI_Principal.destroy )
BUT_Noir = tkinter.Button ( TKI_Principal , text = "Noir" , command = lambda : FNC_Couleur ( "black" ) )
BUT_Rouge = tkinter.Button ( TKI_Principal , text = "Rouge" , command = lambda : FNC_Couleur ( "red" ) )
BUT_Vert = tkinter.Button ( TKI_Principal , text = "Vert" , command = lambda : FNC_Couleur ( "green" ) )
BUT_Jaune = tkinter.Button ( TKI_Principal , text = "Jaune" , command = lambda : FNC_Couleur ( "yellow" ) )
BUT_Fushia = tkinter.Button ( TKI_Principal , text = "Fushia" , command = lambda : FNC_Couleur ( "magenta" ) )
BUT_Cyan = tkinter.Button ( TKI_Principal , text = "Cyan" , command = lambda : FNC_Couleur ( "cyan" ) )
BUT_Bleu = tkinter.Button ( TKI_Principal , text = "Bleu" , command = lambda : FNC_Couleur ( "blue" ) )
BUT_Blanc = tkinter.Button ( TKI_Principal , text = "Blanc" , command = lambda : FNC_Couleur ( "white" ) )
LAB_Couleur = tkinter.Label ( TKI_Principal , text = "Rouge :\nvert :\nbleu :\nCode hexadécimal :" , justify = "left" , anchor = "w" )
BUT_Noir.grid ( row = 0 , column = 0 , sticky = "nesw" )
LAB_Couleur.grid ( row = 0 , column = 1 , rowspan = 4 , sticky = "nesw" )
BUT_Fushia.grid ( row = 0 , column = 2 , sticky = "nesw" )
BUT_Rouge.grid ( row = 1 , column = 0 , sticky = "nesw" )
BUT_Cyan.grid ( row = 1 , column = 2 , sticky = "nesw" )
BUT_Vert.grid ( row = 2 , column = 0 , sticky = "nesw" )
BUT_Bleu.grid ( row = 2 , column = 2 , sticky = "nesw" )
BUT_Jaune.grid ( row = 3 , column = 0 , sticky = "nesw" )
BUT_Blanc.grid ( row = 3 , column = 2 , sticky = "nesw" )
BUT_Quitter.grid ( row = 4 , column = 0 , columnspan = 3 , sticky = "nesw" )
TKI_Principal.mainloop ( )
Votre aide est précieuse pour améliorer ce site, alors n'hésitez pas à faire part de