⇨ MENU ⇨ MODULES ⇨ tkinter ⇨ controles standards ⇨ Text
tkinter.Text ( ).image_create ( )
⇨ MENU ⇨ MODULES ⇨ tkinter ⇨ controles standards ⇨ Text
tkinter.Text ( ).image_create ( )
DESCRIPTION.
Crée et insère une image, comme élément indépendant, dans le contenu un éditeur de texte.
SYNTAXE.
TXT_Editeur.image_create ( index , attribut1 = valeur , ... , attributn = valeur )
TXT_Editeur ⇨ instance quelconque de tkinter.Text ( ) [ OBLIGATOIRE ]
.image_create ( ) ⇨ appel de la méthode [ OBLIGATOIRE ]
index ⇨ emplacement de l'insertion de l'image [ OBLIGATOIRE ]
attribut = valeur ⇨ attribut à modifier avec sa nouvelle valeur [ OBLIGATOIRE ]
REMARQUES.
index est un str ( ) quelconque mais valide désignant un index dans un éditeur de texte. Un index valide a la forme : "paragraphe.place" ou un nom correspondant à une balise ou une position particulière.Voir la méthode tkinter.Text ( ).index ( ) pour plus d'informations sur les index.
Il est possible d'insérer directement, sans passer par une fenêtre d'insertion, des images ou des Bitmap dans le contenu d'un éditeur de texte. De tels éléments sont alors considérés comme des caractère unique donc la taille corresponds à celle de l'image insérée, attention donc aux dimensions de l'objet inséré.
Les images insérées peuvent être manipulées, par les diverses méthodes de la classe tkinter.Text ( ) qui le permettent, comme n'importe quel autre caractère du contenu, grace à son attribut name. Si aucune valeur n'a été affecté à l'attribut name lors de la création, tkinter lui en attribuera un par défaut avec la forme pyimage1, pyimage2, ...
La valeur de l'attribut name, d'une image inséré, peut être utilisée comme index, dans les méthodes demandant un index pour leur fonctionnement.
LISTE DES ATTRIBUTS DES IMAGES.
align = position
Alignement vertical si l'image est moins haute que le texte. position peut être : "baseline", "bottom", "center" ou "top".
image = objet
Désignation de l'objet tkinter.PhotoImage ( ) ou tkinter.BitmapImage ( ) valide à insérer.
name = nom
Référence qui désignera l'image insérée pour la manipuler ensuite. taille est un str ( ) choisi librement mais unique.
padx = taille
Indique la taille de la marge supplémentaire à ajouter à droite et à gauche, de l'image. taille est un int ( ) positif.
pady = taille
Indique la taille de la marge supplémentaire à ajouter en haut et en bas, de l'image. taille est un int ( ) positif.
EXEMPLE.
import tkinter , tkinter.filedialog
LST_Images = [ ]
def FNC_Attribut ( Q ) :
kalign = TXT_Editeur.image_cget ( Q , "align" )
kmarge = TXT_Editeur.image_cget ( Q , "padx" )
LAB_Image [ "text" ] = f"{ Q }, align = { kalign }, marge = { kmarge }"
def FNC_Inserer ( ) :
ktypes = [ ( "image gif" , ".gif" ) , ( "image pgm" , ".pgm" ) , ( "image ppm" , ".ppm" ) ]
kfichier = tkinter.filedialog.askopenfilename ( title = "Sélectionnez une image ..." , filetypes = ktypes )
if len ( kfichier ) < 1 : return
LST_Images.append ( tkinter.PhotoImage ( file = kfichier ) )
knom = f"image_{ len ( LST_Images ) }"
TXT_Editeur.image_create ( "insert" , image = LST_Images [ -1 ] , name = knom )
BOX_Liste.delete ( 0 , "end" )
for kimage in TXT_Editeur.image_names ( ) : BOX_Liste.insert ( 0 , kimage )
LAB_Image [ "text" ] = f"{ knom },"
FNC_Modifier ( )
def FNC_Modifier ( ) :
knom = LAB_Image [ "text" ].split ( "," ) [ 0 ]
if len ( knom ) < 1 : return
TXT_Editeur.image_configure ( knom , align = SPI_Aligner.get ( ) )
TXT_Editeur.image_configure ( knom , padx = int ( SCA_Marge.get ( ) ) )
FNC_Attribut ( knom )
def FNC_Selection ( event ) :
kindex = BOX_Liste.curselection ( )
if len ( kindex ) < 1 : return
kimage = BOX_Liste.get ( kindex )
FNC_Attribut ( kimage )
TKI_Principal = tkinter.Tk ( )
BUT_Quitter = tkinter.Button ( TKI_Principal , text = "Quitter" , command = TKI_Principal.destroy )
BUT_Inserer = tkinter.Button ( TKI_Principal , text = "Insérer" , command = FNC_Inserer )
SPI_Aligner = tkinter.Spinbox ( TKI_Principal , width = 10 , wrap = True , command = FNC_Modifier )
SCA_Marge = tkinter.Scale ( TKI_Principal , orient = "horizontal" , to = 25 , command = lambda event : FNC_Modifier ( ) )
BOX_Liste = tkinter.Listbox ( TKI_Principal )
LAB_Image = tkinter.Label ( TKI_Principal , relief = "ridge" , bd = 3 )
TXT_Editeur = tkinter.Text ( TKI_Principal , width = 40 , height = 12 )
TXT_Editeur.grid ( row = 0 , column = 0 , columnspan = 4 , sticky = "nesw" )
BOX_Liste.grid ( row = 0 , column = 4 , rowspan = 3 , sticky = "nesw" )
LAB_Image.grid ( row = 1 , column = 0 , columnspan = 4 , sticky = "nesw" )
BUT_Inserer.grid ( row = 2 , column = 0 , sticky = "nesw" )
SPI_Aligner.grid ( row = 2 , column = 1 , sticky = "nesw" )
SCA_Marge.grid ( row = 2 , column = 2 , sticky = "nesw" )
BUT_Quitter.grid ( row = 2 , column = 3 , sticky = "nesw" )
BOX_Liste.bind ( "<ButtonRelease>" , FNC_Selection )
SPI_Aligner [ "values" ] = ( "top" , "center" , "bottom" , "baseline" )
TXT_Editeur.insert ( "1.0" , "Tapez votre texte ici ...\n\n" )
TXT_Editeur.focus_set ( )
TKI_Principal.mainloop ( )
Votre aide est précieuse pour améliorer ce site, alors n'hésitez pas à faire part de