Dis bonjour.
Écrire un script python ouvrant une fenêtre tkinter.
Avec la méthode grid, obtenir :
On a utilisé ici deux étiquettes (widget Label), deux widgets d'entrée (Entry) et un bouton.
L'utilisateur entre son nom et son prénom. Un clic sur le bouton affiche alors une étiquette (Label) comme ci-dessous :
Ce Label "bonjour" est également placé avec la méthode grid. On utilise la méthode get() pour récupérer la valeur entrée dans le widget Entry.
A vous !
import tkinter
def bonjour() :
prenom = entree1.get()
nom = entree2.get()
etiquette3.config(text = "Bonjour "+prenom+" "+nom+".")
etiquette3.grid(row=2, column=0)
fenetre = tkinter.Tk()
etiquette1 = tkinter.Label( fenetre, text = 'Votre prénom : ')
etiquette1.grid(row =0, column = 0)
etiquette2 = tkinter.Label( fenetre, text = 'Votre nom : ')
etiquette2.grid(row =1, column = 0)
entree1 = tkinter.Entry(fenetre)
entree1.grid(row=0, column=1)
entree2 = tkinter.Entry(fenetre)
entree2.grid(row=1, column=1)
bouton = tkinter.Button(fenetre, text = 'Clic', command=bonjour)
bouton.grid(row=3, column=1)
etiquette3 = tkinter.Label( fenetre, text = '')
fenetre.mainloop()
Calcul mental.
Écrire un programme, avec une interface tkinter, qui permette de tester la connaissance des tables
de multiplication de l'utilisateur.
- Un bouton doit permettre de lancer une nouvelle demande de multiplication.
- Un emplacement est prévu pour que l'utilisateur entre sa réponse.
- Un bouton permet à l'utilisateur d'envoyer sa réponse.
- L'ordinateur répond par Vrai ou Faux à la proposition de l'utilisateur.
Une solution possible :
import tkinter
import random
bonneReponse = 0 # variable qui contiendra la réponse à la question posée par l'ordinateur
def demande() :
global bonneReponse
ok.config( text = "" ) # remise à zéro du champ de validation/invalidation par l'ordinateur
a = random.randint(2,12)
b = random.randint(2,12)
q = "{} * {} = ? ".format(a,b)
question.config( text = q )
bonneReponse = a*b
def verifier() :
global bonneReponse
rep = eval(reponseUtilisateur.get())
if rep == bonneReponse :
ok.config( text = "Réussi !" )
else :
ok.config( text = "Il faut encore réviser." )
# la fenêtre principale :
fenetrePrincipale = tkinter.Tk()
# le cadre pour les questions :
cadreQuestion = tkinter.Frame(fenetrePrincipale, bg = 'yellow')
# le cadre pour les réponses de l'utilisateur :
cadreReponse = tkinter.Frame(fenetrePrincipale, bg = 'orange')
# le cadre pour la correction par l'ordinateur :
cadreVraiFaux = tkinter.Frame(fenetrePrincipale, bg = 'magenta')
# positionnement des cadres :
cadreVraiFaux.pack(side='bottom', fill='x')
cadreQuestion.pack(side='left',fill='y')
cadreReponse.pack(side='right',fill='y')
################################################################
### Etiquettes, boutons, entrées
###############################################################
# dans le cadre des questions :
question = tkinter.Label( cadreQuestion, text='', bg = 'yellow')
question.grid(row =0, column = 0, pady=20)
relance = tkinter.Button( cadreQuestion, text='Nouvelle demande', command = demande)
relance.grid(row=1, column=0)
# dans le cadre des réponses utilisateur :
votreReponse = tkinter.Label(cadreReponse, text = 'Entrez votre réponse : ', bg = 'orange')
votreReponse.grid(row = 0, column =0)
reponseUtilisateur = tkinter.Entry(cadreReponse)
reponseUtilisateur.grid(row=1, column=0, padx=10, pady=10)
valider = tkinter.Button(cadreReponse,text = 'Confirmez votre réponse en cliquant', command = verifier)
valider.grid(row = 2, column =0)
# dans le cadre réponseVraiFaux :
ok = tkinter.Label(cadreVraiFaux, text='', bg = 'magenta', font= ('Helvetica',12) )
ok.grid(row=0, column=0, padx=80, pady = 20)
# maintenir fenêtre ouverte :
fenetrePrincipale.mainloop()