Saisir une entrée et récupérer le contenu
(175,280)
• Le composant dans lequel l'utilisateur peut entrer la configuration est
dans la classe Entry de tkinter. Idem pour le composant dans lequel il
entrera le numéro de règle. Plaçons ces deux composants dans le canvas.
config = Entry(canvas)
config.pack()
canvas.create_window(175,280,\
width=250,window=config)
canvas.create_text(25,280,text='config')
rule = Entry(canvas)
rule.pack()
canvas.create_window(370,280,\
width=35,window=rule)
canvas.create_text(330,280,text='rule')
250
• On pourra récupérer le contenu de l'Entry rule par : rule.get() qui
retournera une chaîne de caractères !
Les deux boutons et leur callback
• Un bouton est un composant de la classe Button de tkinter. Son
attribut le plus important est command, contenant une fonction d'arité 0.
Cette fonction (le callback du bouton) sera automatiquement exécutée
suite à un clic de l'utilisateur dans le bouton.
boutonQuit = Button(root,text='Quit',command=root.quit)
boutonRun = Button(root,text='Run',command=executer)
boutonQuit.pack()
boutonRun.pack()
• La fonction root.quit() est définie
par tkinter, elle termine le logiciel !
• Il vous reste à définir en TP la
fonction executer() qui va construire
un automate cellulaire et en dessiner
30 générations dans le canvas...
Résumé de l'interface graphique
Bouton quitter
Bouton Run
Texte config
fenêtre principale (root) titre fenêtre principale
affichage (canvas)
root=Tk() root.title('Automate cellulaire unidimensionnel')
canvas=Canvas(width=400,height=300,bg='gray')
canvas.pack(side=LEFT)
canvas.create_text(25,280,text="config")
config=Entry(canvas)
config.pack()
canvas.create_window(175,280,width=250,window=config)
rule=Entry(canvas,width=20)
rule.pack()
canvas.create_window(370,280,\
width=35,window=rule)
canvas.create_text(330,280,text="rule")
Texte rule
champ saisie config
champ saisie rule