Foros del Web » Programando para Internet » Python »

Borrar entry al hacer click en él

Estas en el tema de Borrar entry al hacer click en él en el foro de Python en Foros del Web. Hola de nuevo! Tengo un codigo de python y gtk2 que me borra lo que tengo en el set_text del entry al hacer click dentro ...
  #1 (permalink)  
Antiguo 11/11/2011, 12:33
Avatar de PyLau  
Fecha de Ingreso: octubre-2011
Mensajes: 10
Antigüedad: 13 años, 1 mes
Puntos: 1
Borrar entry al hacer click en él



Hola de nuevo!

Tengo un codigo de python y gtk2 que me borra lo que tengo en el set_text del entry al hacer click dentro del mismo entry, pero el problema es que necesito que lo borre nada mas la primera vez que se hace click en él, para que se borre el texto de Ejemplo que esta alli y no lo que se ingrese en un futuro.

Solo necesito que el def se ejecute una sola vez (la primera vez que se hace click en el entry)

Aqui esta mi codigo:



Código Python:
Ver original
  1. import sys
  2. import pygtk
  3. pygtk.require('2.0')
  4. import gtk
  5.  
  6. class simpleWindow:
  7.     def __init__(self):
  8.         self.wind = gtk.Window(gtk.WINDOW_TOPLEVEL)
  9.         self.wind.set_border_width(2)
  10.         self.wind.set_size_request(400, 300)
  11.  
  12.         self.wind.connect('delete_event', self.__on_quit)
  13.  
  14.         vbox = gtk.VBox()
  15.         self.entry = gtk.Entry()
  16.         self.entry.set_text("Ejemplo")
  17.         self.entry.connect('event', self.__on_entry_clicked)
  18.         vbox.pack_start(self.entry)
  19.  
  20.         self.wind.add(vbox)
  21.         self.wind.show_all()
  22.        
  23.         gtk.main()
  24.  
  25.     def __on_entry_clicked(self, widget, event, data=None):
  26.         if event.type == gtk.gdk.BUTTON_RELEASE:
  27.             self.entry.set_text("")
  28.            
  29.     def __on_quit(self, widget, event=None):
  30.         gtk.main_quit()
  31.         return False
  32.  
  33. def main():
  34.     wind = simpleWindow()
  35.  
  36. if __name__ == '__main__':
  37.     main()
  #2 (permalink)  
Antiguo 11/11/2011, 12:55
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 9 meses
Puntos: 1360
Respuesta: Borrar entry al hacer click en él

Creas una bandera, para este tipo de escenarios.
  #3 (permalink)  
Antiguo 11/11/2011, 14:21
Avatar de PyLau  
Fecha de Ingreso: octubre-2011
Mensajes: 10
Antigüedad: 13 años, 1 mes
Puntos: 1
Respuesta: Borrar entry al hacer click en él

:/

...Flags?

No tendras algun ejemplo? Link o algo? Por Favor!
  #4 (permalink)  
Antiguo 11/11/2011, 15:27
Avatar de PyLau  
Fecha de Ingreso: octubre-2011
Mensajes: 10
Antigüedad: 13 años, 1 mes
Puntos: 1
Respuesta: Borrar entry al hacer click en él

Listo!

Código Python:
Ver original
  1. import sys
  2. import pygtk
  3. pygtk.require('2.0')
  4. import gtk
  5.  
  6. class simpleWindow:
  7.  
  8.     def __init__(self):
  9.         self.wind = gtk.Window(gtk.WINDOW_TOPLEVEL)
  10.         self.wind.set_border_width(2)
  11.         self.wind.set_size_request(400, 300)
  12.  
  13.         self.wind.connect('delete_event', self.__on_quit)
  14.  
  15.         vbox = gtk.VBox()
  16.         self.entry = gtk.Entry()
  17.         self.entry.set_text("Ejemplo")
  18.         self.bandera = True
  19.         self.entry.connect('event', self.__on_entry_clicked)
  20.         vbox.pack_start(self.entry)
  21.  
  22.         self.wind.add(vbox)
  23.         self.wind.show_all()
  24.        
  25.         gtk.main()
  26.  
  27.     def __on_entry_clicked(self, widget, event, data=None):
  28.        
  29.         if (self.bandera):
  30.             if event.type == gtk.gdk.BUTTON_RELEASE:
  31.                 self.entry.set_text("")
  32.                 self.bandera = False
  33.            
  34.     def __on_quit(self, widget, event=None):
  35.         gtk.main_quit()
  36.         return False
  37.  
  38. def main():
  39.     wind = simpleWindow()
  40.  
  41. if __name__ == '__main__':
  42.     main()

Etiquetas: entry
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:20.