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...
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)
Commentaires
Enregistrer un commentaire