Formation PUB400 : Python, 2018 Environnement graphique tkinter

9.6 Les boutons


Le widget Button permet d'ajouter un bouton à notre application.

Il faut passer au moins trois paramètres au constructeur :

  • Une référence à l'objet dans lequel le libellé doit être affiché. Le plus souvent, ce sera la fenêtre principale.
  • Le libellé du bouton, sous la forme text='...'
  • Le code à exécuter lorsque le bouton est cliqué, sous la forme command=action
Python

bouton_terminer = Button(fenetre, text='Terminer', command=fenetre.destroy)

bouton_terminer.pack()

Ici, le clic sur le bouton détruira la fenêtre, ce qui mettra fin au programme.

Libellé du bouton

Le libellé du bouton permet d'informer l'usager du rôle du bouton.

Il est d'usage d'employer un verbe à l'infinitif débutant par une majuscule, par exemple Soumettre, Terminer, Dessiner. Il est également courant de permettre une confirmation simplement avec Oui, Non, OK.

Code associé au clic sur le bouton

Comment Python sait-il ce qui doit être exécuté quand l'usager clique sur le bouton ? C'est grâce à la fonction qui est indiquée dans le paramètre command.

Cette fonction peut être tirée d'un paquet existant (ex : fenetre.destroy) ou encore une fonction que vous aurez programmée. 

Il ne faut pas mettre de parenthèses après le nom de la fonction ni l'entourer d'apostrophes ou de guillemets.

En effet, on n'est pas en train de demander à Python d'exécuter la fonction sur-le-champ. On ne fait qu'associer la fonction à l'événement « clic sur le bouton ».

Il faut écrire :

Python

bouton_terminer = Button(fenetre, text='Terminer', command=fenetre.destroy)

et non :

Python

bouton_terminer = Button(fenetre, text='Terminer', command=fenetre.destroy())

ni :

Python

bouton_terminer = Button(fenetre, text='Terminer', command='fenetre.destroy')

ni :

Python

bouton_terminer = Button(fenetre, text='Terminer', command='fenetre.destroy()')

Désactiver un bouton

Certaines applications nécessitent qu'un bouton soit affiché mais qu'il ne soit pas cliquable tant qu'une condition n'est pas rencontrée.

Voici comment désactiver un bouton :

Python

bouton_enregistrer.configure(state='disabled')

Et pour le réactiver :

Python

bouton_enregistrer.configure(state='enabled')

Hello World avec bouton

Voici un exemple de programme qui permet d'afficher le texte « Hello World » dans une fenêtre qui contient un bouton pour terminer l'application.

Python

#!/usr/bin/env python

 

from tkinter import *

 

# fenêtre principale

fenetre = Tk()

 

# libellé à afficher

libelle = Label(fenetre, text='Hello World')

libelle.pack()

 

# bouton pour terminer

bouton_terminer = Button(fenetre, text='Terminer', command=fenetre.destroy)

bouton_terminer.pack()

 

# la fenêtre s'affiche puis attend les interactions de l'usager

fenetre.mainloop()

Hello World graphique

Ce n'est pas encore très joli mais c'est un début. Nous allons apprendre sous peu comment rendre cette interface plus agréable.

▼Publicité

Veuillez noter que le contenu de cette fiche vous est partagé à titre gracieux, au meilleur de mes connaissances et sans aucune garantie.
Merci de partager !
Soumettre