====== Un bouton ======
Prenons l'exemple d'un bouton dont l'effet est d'ajouter un texte dans une zone de texte. On a déjà dit comment [[nsi:modules:tkinter:zone_de_texte|ajouter une zone de texte]], voyons maintenant pour le bouton.
# import du module
from tkinter import *
# Construction de la fenêtre principale root
root = Tk()
root.title('Simple exemple') # titre de la fenêtre
# Exemple de bouton et contenu Text
def action_du_bouton():
t.delete("1.0", END) # efface du caractère en 1ere position à la fin
t.insert("1.0", "voilà du texte") # insère au début
t = Text(root, bg='white', height=20, width=10)
b = Button(root, text='mon beau bouton', command=action_du_bouton)
b.pack()
t.pack()
root.mainloop()
On crée une zone de texte et un bouton. Le bouton est enfant de ''root''. Il afficher le texte ''%%"mon beau bouton"%%'. Quand on appuiera dessus, il déclenchera la fonction ''%%action_du_bouton%%''
On écrit bien ''%%command = action_du_bouton%%'' sans les parenthèses. En effet à ce moment on ne veut pas exécuter la fonction. On indique seulement quelle fonction il faut déclencher au moment où on appuiera le bouton. On désigne donc la fonction elle-même et pas le résultat de l'exécution.
La fonction ''%%action_du_bouton%%'' va devoir agir sur la zone de texte. Elle travaille donc sur ''t'' qui sera alors une variable globale. Notez que, au moment de définir la fonction ''%%action_du_bouton%%'', la variable ''t'' n'existe pas encore. Ce n'est pas grave, il suffira que ''t'' existe quand on exécutera la fonction, c'est à dire quand on appuiera le bouton.
Vous pouvez voir que les arguments des fonctions d'édition, ''delete'' et ''insert'', ne sont pas très intuitives.