Tkinter - Vocabulaire

tkinter est l'un des modules python permettant de réaliser des interfaces graphiques interactives (appelées fenêtres dans la suite).
Les différents éléments d'une fenêtre sont appelés widgets.
Le widget permettant de réaliser des animations, des jeux ou des applications (applets de physique...) est le canvas. C'est une zone de dessin dans laquelle il est possible d'interagir avec les objets dessinés grâce à la souris, à des raccourcis clavier...

Les différents widgets sont présentés sur l'image ci-dessous.

Fenêtre démo

Plusieurs étapes sont nécessaires pour la création d'une fenêtre :

  • Création et personnalisation de la fenêtre ;
  • Définition du contenu : insertion et placement de widgets ;
  • Définition des interactions clavier, souris : gestion des événements

Commencer le tutoriel

Attention, ce tutoriel ne suit ni l'ordre exact des pages ni ne couvre la totalité des pages, il est destiné à faciliter la prise en main de Tkinter mais il restera beaucoup de choses à découvrir !
C'est pourquoi, dans un second temps, il est conseillé de parcourir le menu afin d'avoir un aperçu des possibilités de Tkinter.

Utiliser systématiquement le bouton "A suivre..." du tutoriel.

Commencer

Code


Commentaires

Il est essentiel d'observer le code (un peu comme on découvre une langue étrangère) : identifier des fragments de code et les associer à des éléments graphiques ou à la gestion de certains événements (clics, clavier...).
Ensuite, ne pas hésiter à modifier le code proposé afin de tester des idées, pour voir ce que cela change, bref, essayer !
Bien lire les messages d'erreurs en cas d'échec, ils sont généralement instructifs.

Programmation orientée objet (POO)

Que signifient les points "." dans les instructions de la forme win.mainloop() ou win.bind("<Key>", lambda event: print(event.char)) ?

Les fenêtres tkinter sont des objets, au sens de la programmation orientée objet (POO).

Exemples d'objets en python : une liste L, un graphique (plot) sont des objets.

Un objet possède des attributs (des propriétés) et des méthodes (des fonctions associées).
Exemples : L.append(x) est une méthode permettant d'ajouter un élément à la fin de liste L, plt.title('abc') permet d'ajouter un titre à un graphe.
Ci-dessus, mainloop() et bind() sont des méthodes d'une fenêtre nommée win, char est un attribut de l'événement event.

Syntaxe avec le point "." :

  • Pour appeler une méthode : objet.methode(parametres) ;
  • Pour lire et stocker un attribut : x = objet.attribut ;
  • Pour modifier un attribut : objet.attribut = valeur.

Toutes les listes possèdent les mêmes méthodes, elles définissent donc une famille d'objets qu'on appelle une classe. Chaque liste particulière est une instance de cette classe.
Exemple: l'instruction L = list() crée une liste vide (équivalente à L = []). On dit que L est une instance de la classe list ou encore que cette instruction est l'instanciation de L (i.e. on crée un objet, nommé L ou stocké dans la variable L, appartenant à la classe list.

Tout objet créé par une instruction de la forme nom_variable = nom_classe() hérite des méthodes et des attributs associés à la classe ; par exemple, toutes les listes possèdent la méthode append().