Utilisation de fenêtres et de graphismes

Premiers pas avec tkinter

Pour créer des fenêtres graphiques, on utilise le module tkinter de python.
Il faut que l’une des premières lignes du script contienne l’instruction d’importation :
from tkinter import *

On considère le script suivant:
from tkinter import *
fenetre = Tk()  #on peut choisir le nom que l'on veut pour la fenêtre
tex1 = Label(fenetre, text='Bonjour tout le monde !', fg='red')  #création du texte
tex1.pack() #insertion du texte dans la fenêtre
fenetre.mainloop() #lancement de la boucle principale
 
Exécuter ce script.
Ce script permet d'ouvrir une fenêtre graphique dans laquelle y est inséré un widget(objet graphique), ici un bout de texte.
Il existe d'autres widgets: boutons, canvas, etc...

Les canvas

Un canvas (toile, tableau en français) est un espace dans lequel on peut dessiner ou écrire ce qu'on veut.

On considère le script suivant:
from tkinter import*
fenetre = Tk()
canvas = Canvas(fenetre, width=150, height=120, background='yellow')
ligne1 = canvas.create_line(0, 0, 150, 120)
ligne2 = canvas.create_line(0,120, 150,0)
txt = canvas.create_text(75, 60, text="diagonales", font="Arial 16 italic", fill="blue")
canvas.pack()
fenetre.mainloop()
Exécuter ce script.
La méthode .create_line(x0,y0,x1,x1) permet de tracer une droite par les points de coordonnées (x0,x0)et(x1,y1) dans un canvas.

Quelques propriétés de l'objet Canvas

Les propriétés sont définies en paramètre lors de la construction de l'objet

Quelques méthodes du widget Canvas

On peut trouver plus d'informations sur les widgets sur ce site. (ici la création de rectangle et les options)

Exercices

Les boutons

On considère le script suivant:
  # bouton de sortie
from tkinter import *
fenetre = Tk()  #on peut choisir le nom que l'on veut pour la fenêtre
bouton=Button(fenetre, text="Quitter", command=fenetre.destroy)  #création d'un bouton
bouton.pack() #insertion du bouton dans la fenêtre
fenetre.mainloop() #lancement de la boucle principale

Exécuter ce script.
Les boutons permettent de proposer une action à l'utilisateur. Dans l'exemple ci-dessus, on lui propose de fermer la fenêtre.
L'option command peut appeller une fonction qui a été créee précédemment.

Placer des widgets

Il est possible de placer les widgets à l'aide du paramètre side:
On considère la script suivant:
Canvas(fenetre, width=250, height=100, bg='ivory').pack(side=TOP, padx=5, pady=5)
Button(fenetre, text ='Bouton 1').pack(side=LEFT, padx=5, pady=5)
Button(fenetre, text ='Bouton 2').pack(side=RIGHT, padx=5, pady=5)
Exécuter ce script.
On considère la script suivant:
Canvas(fenetre, width=250, height=50, bg='ivory').pack(side=LEFT, padx=5, pady=5)
Button(fenetre, text ='Bouton 1').pack(side=TOP, padx=5, pady=5)
Button(fenetre, text ='Bouton 2').pack(side=BOTTOM, padx=5, pady=5)
Exécuter ce script.

Les unités de dimensions

Si vous indiquez une dimension à travers un integer, l'unité utilisée sera les "pixels".
Les options de dimensions:

Les options de couleurs

Il est possible d'indiquer une valeur de couleur par son nom en anglais: "white", "black", "red", "yellow", etc. ou par son code hexadécimale: #000000, #00FFFF, etc.

Exercices

Réaliser une fenêtre dans laquelle figure un canvas de 150x120, deux boutons nommés FRANCE et ALLEMAGNE.
Un clic sur un bouton doit dessiner le drapeau correspondant au pays.