Aller au contenu

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