Griser un Entry

Clementine1998 Messages postés 34 Date d'inscription   Statut Membre Dernière intervention   -  
 Flaubert -
Bonjour, j'aimerais que lorsque je clique sur le bouton, la case Entry se grise pour que je ne puisse plus modifier ce qu'il y à l'intérieur... Est-ce que c'est possible?

from tkinter import *

root = Tk()

def QCM():
#Griser l'Entry

Prenom = Entry(root)
Prenom.pack()
b=Button(root, text ="C'est parti !", command=QCM)
b.pack()

root.mainloop()
A voir également:

1 réponse

Flaubert
 
Oui, c'est possible, entry a un paramètre state qui peut définir cela.

Exemple simple utilisant lambda dans les commandes boutons de tkinter.

import tkinter as tk

root = tk.Tk()

def modifier_etat_entree(objet_entry, etat):
objet_entry.configure(state=etat) # Ou objet_entry['state'] = etat qui fait la même chose

prenom = tk.Entry(root)
prenom.pack()
bouton_desactiver = tk.Button(root, text ="Désactiver", command=lambda p=prenom, etat=tk.DISABLED: modifier_etat_entree(p, etat))
bouton_desactiver.pack()

bouton_activer = tk.Button(root, text ="Activer", command=lambda p=prenom, etat=tk.NORMAL: modifier_etat_entree(p, etat))
bouton_activer.pack()

root.mainloop()


Pour le fonctionnement de lambda, je t'invite à rechercher sur ton moteur de recherche préféré qui te renverra vers des explications détaillées.
1
Clementine1998 Messages postés 34 Date d'inscription   Statut Membre Dernière intervention  
 
Merci beaucoup cela fonctionne. Pouvez-vous m'expliquer les deux premières lignes svp
0
Flaubert > Clementine1998 Messages postés 34 Date d'inscription   Statut Membre Dernière intervention  
 
Je n'ai pas compris de quelles lignes tu veux parler.
0
Clémentine1998 > Flaubert
 
Import tkinter as tk, c'est un module qu'on importe?
0
Flaubert > Clémentine1998
 
Oui, on importe tkinter sous le nom de tk.

C'est simplement un alias, au lieu d'écrire tkinter.Truc, on écrira tk.Truc, tu peux mettre ce que tu veux comme nom de substitution.

C'est uniquement pour raccourcir le nom à taper dans le code, c'est très utile pour les noms de modules à rallonges.
0