PYTHON 2 INFO FEUILLE n°24 D'EXERCICES Janvier 2013
Thème : Tkinter
Utilisation du module Tkinter pour obtenir
une fenêtre graphique à l'aide de canvas.
Cela permet des tableaux quadrillés.
• cadre=Tk()
Pour créer la fenêtre du nom de cadre pour le moment non
caractérisée.
• canv=Canvas(..nom de la fenêtre..,width= ... ,height= ..)
crée le rectangle extérieur, de la fenêtre cadre, appelé ici canv
• canv.create_rectangle((4,4,... largeur..... ,.. hauteur...),fill=".... couleur ...",outline=" ...couleur...")
crée le rectangle intérieur avec ses caractéristiques les épaisseurs des traits( ici 4 ),
ses dimensions, la couleur intérieure et des bords.
fill= est pour la couleur intérieure
outline= est pour la couleur de la bordure.
• canv.pack()
Pour positionner canv dans la fenêtre .
• cadre.mainloop()
Exécute le tracé de la fenêtre cadre
-------------------------------------------------------------------------------------
EXERCICE 1
Créer un script qui permet d'obtenir une fenêtre cadre,
de largeur 400 et de hauteur 400 dans laquelle on inscrit
un rectangle blanc bordé de rouge de 395 de largeur et 380 de hauteur.
-------------------------------------------------------------------------------------
REPONSE:
On peut considérer :
from Tkinter import *
def tableau():
cadre = Tk()
# Pour les dimensions du rectangle extérieur
canv=Canvas(cadre,width=400,height=400)
canv.pack()
# Pour la bordure et les dimension du rectangle intérieur
canv.create_rectangle((4,4,395,380),fill="white",outline="red")
cadre.mainloop()
On obtient à l'écran:
La hauteur du rectangle extérieur est limitée.
--------------------------------------------------------------------------------------------------------
EXERCICE 2
Créer une fenêtre avec des lignes
-----------------------------------------------------------------------------------------------------------
REPONSE:
On peut proposer:
from Tkinter import *
def tableau():
cadre = Tk()
canv=Canvas(cadre,width=400,height=400)
canv.pack()
canv.create_rectangle((4,4,395,380),fill="white",outline="red")
canv.create_line((4,30,395,30),fill="red",width=0)
canv.create_line((4,60,395,60),fill="red",width=0)
canv.create_line((4,90,395,90),fill="red",width=0)
cadre.mainloop()
On obtient de lignes horizontales bord à bord
en rouge d'épaisseur 0
avec le même espacement de 30
------------------------------------------------------------------------------------------------
EXERCICE 3
Avec une boucle créer des lignes horizontales
dans une figure comme la précédente.
---------------------------------------------------------------------------------------------
REPONSE:
On peut proposer :
from random import*
from Tkinter import *
def tableau():
cadre = Tk()
canv=Canvas(cadre,width=400,height=400)
canv.pack()
canv.create_rectangle((4,4,395,380),fill="white",outline="red")
for i in range(1,13):
canv.create_line((4,30*i,395,30*i),fill="red",width=0)
cadre.mainloop()
On obtient :
------------------------------------------------------------------------------------
EXERCICE 4
Obtenir un tableau comme dans l'exercice précédent
mais avec une colonne à gauche et une ligne en haut seulement.
--------------------------------------------------------------------------------------------------------
REPONSE:
On peut considérer:
from Tkinter import *
def tableau():
cadre = Tk()
canv=Canvas(cadre,width=400,height=400)
canv.pack()
canv.create_rectangle((4,4,395,380),fill="white",outline="red")
canv.create_line((4,30,395,30),fill="red",width=0)
canv.create_line((30,4,30,380),fill="red",width=0)
cadre.mainloop()
On obtient:
----------------------------------------------------------------------------------------
EXERCICE 5
Faire un script qui rajoute les lignes verticales espacées de 30
au tableau de l'exercice précédent.
-------------------------------------------------------------------------------------------------------
REPONSE:
On peut considérer:
from Tkinter import *
def tableau():
cadre = Tk()
canv=Canvas(cadre,width=400,height=400)
canv.pack()
canv.create_rectangle((4,4,395,380),fill="white",outline="red")
canv.create_line((4,30,395,30),fill="red",width=0)
for i in range(1,13):
canv.create_line((30*i,4,30*i,380),fill="red",width=0)
cadre.mainloop()
On obtient :
-----------------------------------------------------------------------------------------------------------
EXERCICE 6
Donner un script qui donne le tableau cadrillé avec
des écartements de 30
---------------------------------------------------------------------------------------------
REPONSE:
On peut considérer:
from Tkinter import *
def tableau():
cadre = Tk()
canv=Canvas(cadre,width=400,height=400)
canv.pack()
canv.create_rectangle((4,4,395,380),fill="white",outline="red")
canv.create_line((4,30,395,30),fill="red",width=0)
for i in range(1,13):
canv.create_line((30*i,4,30*i,380),fill="red",width=0)
for j in range(1,13):
canv.create_line((4,30*j,395,30*j),fill="red",width=0)
cadre.mainloop()
On obtient:
-----------------------------------------------------------------------------------------------------