Interfaces graphiques en Python et Tkinter

Ceci correspond à la séance 1B5 de la formation 2013-2014.

Il y a de nombreuses bibliothèques pour créer des interfaces graphiques: Gtk+, Qt, wxWidgets, qui sont utilisables en Python. Cela fonctionne toujours un peu pareil, même si chacune a ses spécificités. Ici, on utilisera la bibliothèque tkinter, qui est la présentation en Python de la bibliothèque Tcl/Tk. La raison principale est qu'elle fait partie des bibliothèques standard de Python et qu'à ce titre elle est installée d'office et interagit bien avec les environnements de développement comme Idle.

Démarrage

L'incontournable premier programme avec tkinter ressemble à ceci:

   1 from tkinter import *
   2 fenetre = Frame()
   3 fenetre.pack()
   4 texte = Label(fenetre, text="Salut!")
   5 texte.pack()
   6 fenetre.mainloop()

Tapez ce programme et lancez-le, vous verrez apparaître une fenêtre qui dit juste "Salut". Le programme se terminera quand vous fermerez la fenêtre.

Quelques explications:

Ajout d'éléments

Ajoutons un bouton à la fenêtre: avant l'appel à mainloop, on ajoute

   1 bouton = Button(fenetre, text="Hop")
   2 bouton.pack()

Et on a un bouton en dessous du message, mais ce bouton ne fait rien.

Pour ajouter une action, on utilise le paramètre command qui attend comme valeur une fonction:

   1 def action():
   2     print "Clic."
   3 
   4 bouton = Button(fenetre, text="Hop", command=action)
   5 bouton.pack()