Tutoriel Tkinter - Bouton
Le widget de bouton Tkinter est assez similaire au widget d’étiquette Tkinter. Il a presque les mêmes options que celles de l’étiquette, sauf qu’il a une option supplémentaire par défaut. Nous donnerons des détails sur cette option par défaut après un exemple de bouton de base.
Vous pouvez générer deux boutons très simples en utilisant les codes de démonstration ci-dessous.
from sys import version_info
if version_info.major == 2:
import Tkinter as tk
elif version_info.major == 3:
import tkinter as tk
app = tk.Tk()
button1 = tk.Button(app, text="Python Label 1")
button2 = tk.Button(app, text="Python Label 2")
button1.pack(side=tk.LEFT)
button2.pack(side=tk.LEFT)
app.mainloop()
La fenêtre avec deux boutons adjacents l’un à l’autre apparaît après que vous ayez exécuté les codes.
Bouton Tkinter Option par défaut
L’option default
dans le bouton indique que le bouton est le bouton par défaut dans l’interface graphique, par exemple, celui qui est invoqué automatiquement lorsque l’utilisateur appuie sur la touche Entrée ou Retour.
La commande de rappel du bouton par défaut n’est pas créée automatiquement. Vous devez la créer manuellement.
Rappel de la commande du bouton Tkinter
L’option command
invoque la fonction de rappel lorsque le bouton est pressé.
L’état du bouton doit être actif lorsque son option de commande est activée, sinon, il n’y a pas de rappel invoqué.
from sys import version_info
if version_info.major == 2:
import Tkinter as tk
elif version_info.major == 3:
import tkinter as tk
app = tk.Tk()
labelExample = tk.Button(app, text="0")
def change_label_number():
counter = int(str(labelExample['text']))
counter += 1
labelExample.config(text=str(counter))
buttonExample = tk.Button(app, text="Increase", width=30,
command=change_label_number)
buttonExample.pack()
labelExample.pack()
app.mainloop()
Elle crée un bouton et un widget d’étiquette dans la fenêtre principale. Le nombre dans le texte du libellé est augmenté de 1 à chaque fois que le bouton est cliqué.
def change_label_number():
counter = int(str(labelExample['text']))
counter += 1
labelExample.config(text=str(counter))
La fonction change_label_number
est la fonction invoquée quand le bouton est cliqué. Elle récupère le nombre de label et met ensuite le label augmenté de un.
buttonExample = tk.Button(app, text="Increase", width=30,
command=change_label_number)
Elle construit la liaison entre le bouton et sa fonction de rappel.
Le nom de la fonction dans les options du bouton est sans parenthèses.
Tkinter Bouton Commande Fonction de rappel avec arguments
Vous avez besoin d’un objet partiel
de functools
si vous avez besoin de passer des arguments aux fonctions de rappel. Les objets partials
sont des objets appelables avec les arguments positionnels args
et les arguments de mots-clés keywords
.
Le code ci-dessous montre comment utiliser cette fonction partielle
dans la commande button.
def change_label_number(num):
counter = int(str(labelExample['text']))
counter += num
labelExample.config(text=str(counter))
buttonExample = tk.Button(app, text="Increase", width=30,
command=partial(change_label_number, 2))