2016-12-11 1 views
-1

Par exemple:Comment rendre le texte par défaut dans l'entrée qui disparaît

from Tkinter import * 
root = Tk() 

e1 = Entry(root) 
e1.insert(END, "ex. new file") #would like to make this text disappear when clicked 
e1.grid(row=0, column=0) 

root.mainloop() 

Lorsque le texte «ex titi » disparaît quand on clique dessus sur, en laissant un champ de saisie vide.

Répondre

1
  1. Créer un indicateur booléen qui surveille si l'entrée a été accédée; définissez-le sur False,
  2. Lier "< Button-1 >" à une fonction qui efface l'entrée si elle n'a pas encore été accédée et change l'indicateur en True.
+0

Pourriez-vous donner un exemple – peer

+1

Vous pouvez lire sur des événements de liaison aux widgets ici: http://effbot.org/tkinterbook/tkinter- events-and-bindings.htm. Vous devez définir une fonction qui efface l'entrée, si nécessaire, et la lier à l'entrée. – DyZ

0

Ajouté

def delete_text(event): 
    if default_text: 
    e1.delete(0, END) 
    default_text = False 

default_text = True 
e1.bind("<Button-1>", delete_text) 

Merci à DYZ et effbot

+0

Cela supprimera toujours le texte. Je pensais que vous vouliez supprimer uniquement le texte par défaut d'origine. – DyZ

+0

Cela a du sens pour moi, mais: Cela me donne UnboundLocalError: variable locale 'default_text' référencé avant l'affectation, lorsque je clique sur la zone de saisie et ne supprime plus le texte. – peer

+0

Oups, il suffit de déplacer sa définition avant la définition de la fonction. – DyZ