Tkinter : Text et Canvas

dans ce cours, nous allons continuer avec deux widgets majeur de tkinter qui sont d'ailleurs à mon avis les plus utiles et puissants. avec le widgets Text vous pourrez écrire votre propre logiciel de saisi comme Microsoft Word, et avec Canvas, vous pourrez mettre sur pied un puissant logiciel comme Blender, Photoshop et autres... 

La Class Text

Ce sont des widgets permettant de faire des saisis de texte comme sur un éditeur classique avec insertion de document

Example:

texteWidget=Text(fenetre,width=100,height=10,font=("magneto",25,"bold","italic"),bg="gold", fg="black", relief="ridge")

Les options :

bg ou background : couleur de fond

fg ou foreground : couleur d’avant plan

width : longueur en nombre de caractères

height : largeur en nombre de caractères 

relief : apparence du widget (SUNKEN, RAISED, GROOVE, RIDGE, SOLID, FLAT)

text : le texte du widget

xscrollcommand : défilement horizontal du widget

yscrollcommand : défilement vertical du widget

font : la mise en forme du texte du widget (style,taille,bold,italic)

Les indices dans le widgets Text :

'line.column' : c’est une chaine de caractère indiquant la ligne et la colonne spécifique à un mot ou une image. Ex : '5.5' veut dire ligne 5 colonne 5 

'line.end' : c’est une chaine de caractère indiquant la ligne et la dernière colonne du widget Text

Ex : '5.end' veut dire ligne 5, dernière colonne 

 

Fonctions associées :

.delete(index1,index2) : efface le contenu du Text widget de l’index1 jusqu'à l’index2.

Ex : textWidget.delete(‘1.3’,’4.end’)

.get(index1,index2) : récupères dans une variable le contenu du Text widget de l’index1 jusqu'à l’index2. Ex : textWidget.get((‘1.3’,’4.end’)

.insert(index,text) : permet d’insérer un texte à l’index indique. Ex : textWidget.insert(‘end’, ‘bonjour tout le monde. Comment vous allez ?’)

.image_create(index, image=objectImage) : permet d’insérer une image à l’index indiqué

.see(index) : permet de scroller le widget jusqu’à l’index indiqué. Ex : textWidget.see(‘end’)

 

La Class Canvas :

Ce sont des zones de dessins pouvant abriter de façon organisée tous les autres types de widgets. D’ailleurs vous les utiliserez plus que les Frames et Label pour vos applications de grandes importances.

 

Exemple :

canvas=Canvas(fenetre, width=700, height=600, bg="gold", relief="ridge")

Les options :

bg ou background : couleur de fond

width : longueur en nombre de caractères

height : largeur en nombre de caractères 

relief : apparence du widget (SUNKEN, RAISED, GROOVE, RIDGE, SOLID, FLAT)

xscrollcommand : défilement horizontal du widget

yscrollcommand : défilement vertical du widget

 

Fonctions associées :

Les coordonnées du Canvas

Les tags sont les identifiants qui permettent de retrouver un objet ou un groupe d’objets dans le Canvas. Les tags sont des chaines de caractère. Un objet peut avoir plusieurs Tags

Chaque objet est aussi représenté par un identifiant (id) unique (un entier) qui est lui est attribué au moment de sa création.

Les tags et les id sont donc des éléments qui nous permettent d’accéder aux éléments et de les modifier

tagOrID veut dire soit le tag soit l’id. Vous choisirez donc entre le tag et l’id

·       .addtag_all(newTag) : ajoute un nouveau tag à tous les objets du canvas

·       .addtag_below(newTag, tagOrID) : ajoute le tag newTag à l’objet situé en dessous de tagOrID

·       .addtag_closest(newTag, x, y) : ajoute le tag newTag à l’objet situé au cordonnée x,y

·       .addtag_enclosed(newTag, x1, y1, x2, y2) : ajoute le tag newTag aux objets contenu dans le rectangle allant de x1,y1 à x2,y2

·       .addtag_withtag(newTag, tagOrId) : ajoute le tag newTag aux objets identifiés par tagOrID

·       .coords(tagOrId, x0, y0, x1, y1, ..., xn, yn) : permet soit de modifier les coordonnées d’un objet, soit de récupérer les coordonnées d’un objet

-        Récupérer les coordonnées : tableCoord=canvas.coords(tagOrID)

-        Modifier les coordonnées : canvas.coords(tagOrID, tupleDeCoordonnees)

·       .delete(tagOrId) : permet d’effacer l’objet tagOrID du Canvas

·       .dtag(tagOrId, tagToDelete) : permet d’effacer le tag tagToDelete  de l’objet identifier par tagOrID

·       .find_all() : permet de récupérer dans une liste, tous les identifiants de tous objets présent dans le Canvas

·       .find_below(tagOrId) : permet de récupérer l’ID de l’objet situé en dessous de tagOrID

·       .find_closest(x, y, halo=None, start=None) : affiche l’ID de l’objet situé près des coordonnées x et y

·       .find_enclosed(x1, y1, x2, y2) : permet de récupérer la liste des objets contenu dans le rectangle allant de x1,y1 à x2,y2

·       .find_withtag(tagOrId) : permet de récupérer la liste des objets identifié par tagOrID

·       .gettags(tagOrId) : permet de récupérer la liste des tag identifié par tagOrID

·       .itemcget(tagOrId, option) : permet d’obtenir une option de l’objet identifier par tagOrID

·       .itemconfigure(tagOrId, option, ...) : permet de modifier les options d’un objet identifié par tagOrID

·       .move(tagOrId, xAmount, yAmount) : permet de déplacer l’objet tagOrID d’une valeur xAmount et yAmount

·       .postscript(option, ...) : permet d’imprimer le contenu du Canvas sous forme d’une image EPS modiafiable par les logiciel de traitement d’Image

Exemple :

nom=asksaveasfilename()

canvas.postscript(file=nom+".eps",colormode='color')

canvas.postscript(file=nom+"_all.eps",colormode='color',x=0,y=0,width=width,height=int(height))

·       .scale(tagOrId, xOffset, yOffset, xScale, yScale) : permet d’agrandir un objet identifié par tagOrID à partir du point xOffset, yOffset et pour des facteurs xScale, yScale (1.0 et 1.0 correspondent à aucun agrandissement)

·       .tag_lower(tagOrId, belowThis) : permet de placer l’objet tagOrID en dessous de l’objet belowThis

·       .tag_raise(tagOrId, aboveThis) : permet de placer l’objet tagOrID au-dessus de l’objet aboveThis

·       .type(tagOrId) : permet de récupérer le type d’un objet.

 

Les objets gérer par les Canvas :

Ce sont les différents objets qu’un Canvas peut créer ou manipuler. Les voici : 'arc', 'bitmap', 'image', 'line', 'oval', 'polygon', 'rectangle', 'text', or 'window'.

·       .create_arc (x, y, x2, y2, fill=couleur, style="arc", start=0, extent=180, width=10, outline="red")

-        fill : la couleur de remplissage de l’arc

-        outline : la couleur des bordure de l’arc

-        style : le type d’arc – arc , pieslice, chord

-        start :valeur de  l’angle de depart de l’arc

-        extent : valeur de fin de l’arc

-        width : epaisseur des bordures de l’arc

·       .create_image(x,y,image=imagePhoto)

-        x,y : position du centre de l’image sur le Canvas

-        image : l’objet image a collé sur le canvas

·       .create_line((tuple de coordonné x,y) , fill=couleur, width=epaisseur, smooth=1 , joinstyle='round')

-        (tuple de coordonné x,y) : ce sont tous les coordonnées des différents points de la ligne

-        fill : la couleur de remplissage de la ligne

-        width : epaisseur des bordures de la ligne

-        stipple : defini la transparence de l’objet (‘ ’, 'gray75', 'gray50', 'gray25', 'gray12')

-        smooth : pour le lissage de la ligne Ture ou False ou 0 ou 1

-        joinstyle  et capstyle :

 

·       .create_polygon((tuple de coordonné x,y), fill=couleur, outline="black", width=2, joinstyle='round')

-        (tuple de coordonné x,y) : ce sont tous les coordonnées des différents points du polygon

-        fill : la couleur de remplissage du polygon

-        width : epaisseur des bordures du polygon

-        smooth : pour le lissage de la ligne Ture ou False ou 0 ou 1

-        joinstyle  et capstyle :

-        outline : la couleur des bordures du polygon

-        stipple : defini la transparence de l’objet (‘ ’, 'gray75', 'gray50', 'gray25', 'gray12')

·       .create_oval(x, y, x2, y2, outline='black', fill=couleur, width=2)

-        x, y, x2, y2 : les coordonnées de l’oval allant de x1,y1 à x2,y2

-        fill : la couleur de remplissage de l’oval

-        width : epaisseur des bordures de l’oval

-        outline : la couleur des bordures de l’oval

-        stipple : defini la transparence de l’objet (‘ ’, 'gray75', 'gray50', 'gray25', 'gray12')

·       .create_rectangle(x, y, x2, y2, outline='black', fill=couleur, width=2)

-        x, y, x2, y2 : les coordonnées du rectangle allant de x1,y1 à x2,y2

-        fill : la couleur de remplissage du rectangle

-        width : epaisseur des bordures du rectangle

-        outline : la couleur des bordures du rectangle

-        stipple : defini la transparence de l’objet (‘ ’, 'gray75', 'gray50', 'gray25', 'gray12')

·       .create_text(x ,y ,fill=color, font=(), text= valeur)

-        x,y : position du centre de l’image sur le Canvas

-        font : police du texte

-        text : valeur du texte

-        fill : couleur du texte

·       .create_window(x, y, ,window=widget)

-        x,y : position du centre de l’image sur le Canvas

-        widget : permet d’inserer un widget dans le canvas (très pratiques)

< tkinter : les widgets

boites de dialogues et les évènements >

Commentaires

Posts les plus consultés de ce blog

Galerie de Réalisations Python 🖼️

une Calculatrice simple avec python🧮

Bienvenue sur notre site dédié à la programmation avec Python ! 🐍