Tkinter - Découverte¶
# Petit exercice utilisant la bibliothèque graphique Tkinter
from tkinter import *
from random import randrange
# définition des fonctions gestionnaires d'événements :
def drawline():
global x1, y1, x2, y2, coul
can1.create_line(x1,y1,x2,y2,width=2,fill=coul)
# modification des coordonnées pour la ligne suivante :
y2, y1 = y2+10, y1-10
def changecolor():
global coul
pal=['purple','cyan','maroon','green','red','blue','orange','yellow']
c = randrange(8) # => génère un nombre aléatoire de 0 à 7
coul = pal[c]
#Programmeprincipal #
# les variables suivantes seront utilisées de manière globale :
x1, y1, x2, y2 = 10, 190, 190, 10 # coordonnées de la ligne
coul = 'dark green' # couleur de la ligne
# Création du widget principal ("maître") :
fen1 = Tk()
# création des widgets "esclaves" :
can1 = Canvas(fen1,bg='dark grey',height=200,width=200)
can1.pack(side=LEFT)
bou1 = Button(fen1,text='Quitter',command=fen1.quit)
bou1.pack(side=BOTTOM)
bou2 = Button(fen1,text='Tracer une ligne',command=drawline)
bou2.pack()
bou3 = Button(fen1,text='Autre couleur',command=changecolor)
bou3.pack()
fen1.mainloop() # démarrage du réceptionnaire d'événements
fen1.destroy() # destruction (fermeture) de la fenêtre
Exercice 1¶
Modifier le programme pour ne plus avoir que des lignes de couleur cyan, marron et verte.
Exercice 2¶
Modifier le programme pour que toutes les lignes tracées soient horizontales et parallèles.
Exercice 3¶
Agrandissez le canevas de manière à lui donner une largeur de 500 unités et une hauteur de 650. Modifiez également la taille des lignes, afin que leurs extrémités se confondent avec les bords du canevas.
Exercice 4¶
Ajoutez une fonction drawline_2 qui tracera deux lignes rouges en croix au centre du canevas : l'une horizontale et l'autre verticale. Ajoutez également un bouton portant l'indication « viseur ». Un clic sur ce bouton devra provoquer l'affichage de la croix.
Exercice 5¶
Reprenez le programme initial. Remplacez la méthode create_line par create_rectangle. Que se passe-t-il ? De la même façon, essayez aussi create_arc, create_oval, et create_polygon. Attention, pour le polygone, il est nécessaire de modifier légèrement le programme pour que le polygone soit visible sur le canevas :
https://anzeljg.github.io/rin2/book2/2405/docs/tkinter/create_polygon.html
Exercice 6¶
La documentation pour dessiner des cercles : https://anzeljg.github.io/rin2/book2/2405/docs/tkinter/create_oval.html
-
Créez un court programme (en utilisant un autre fichier) qui dessinera les 5 anneaux olympiques dans un rectangle de fond blanc (white). Un boutton « Quitter » doit permettre de fermer la fenêtre.
-
Modifiez le programme ci-dessus en y ajoutant 5 boutons. Chacun de ces boutons provoquera le tracé de chacun des 5 anneaux