Griser un Entry

Clementine1998 Messages postés 43 Statut Membre -  
 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()

1 réponse

  1. 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
    1. Clementine1998 Messages postés 43 Statut Membre
       
      Merci beaucoup cela fonctionne. Pouvez-vous m'expliquer les deux premières lignes svp
      0
      1. Flaubert > Clementine1998 Messages postés 43 Statut Membre
         
        Je n'ai pas compris de quelles lignes tu veux parler.
        0
      2. Clémentine1998 > Flaubert
         
        Import tkinter as tk, c'est un module qu'on importe?
        0
      3. 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