Le widget Button permet d'ajouter un bouton à notre application.
Il faut passer au moins trois paramètres au constructeur :
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.
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.
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 :
bouton_terminer = Button(fenetre, text='Terminer', command=fenetre.destroy)
et non :
bouton_terminer = Button(fenetre, text='Terminer', command=
)ni :
bouton_terminer = Button(fenetre, text='Terminer', command=
)ni :
bouton_terminer = Button(fenetre, text='Terminer', command=
)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 :
bouton_enregistrer.configure(state='disabled')
Et pour le réactiver :
bouton_enregistrer.configure(state='enabled')
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.
#!/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()
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é