Logo Espacio Linux       
Portada Taller Linux Descargas Foros Buscar Mapa del sitio Ayuda BlogEL
   Iniciar sesión | Registrarse    
 
Principal

Patrocinadores

Anuncios



Boletín Espacio Linux
Las novedades del sitio y el mundo Linux en tu email.


Sitios amigos

Blogs de miembros


Directorio de blogs | Registrarse
Los usuario registrados pueden crear su propio blog y escribir comentarios.

Limitar un Entry con GTK+


Por: shakka
Publicado el: 05-06-2007 @ 05:05 am


validar entry

Despues de buscar informacion sobre como controlar la captura de teclado sobre un widget tipo GTkEntry, encontre la forma de hacerlo mediante el evento “key_press_event”.

GtkWidget *txt_entrada;
...
txt_entrada = gtk_entry_new_with_max_length(24);
...
/*
* Indicamos la funcion(txt_entrada_keypress) que manejara
* el evento(key_press_event), sobre el objeto txt_entrada
*/

gtk_signal_connect
(
GTK_OBJECT (txt_entrada),
“key_press_event”,
GTK_SIGNAL_FUNC (txt_entrada_keypress),
NULL
);

Esta funcion evaluara cada tecla presionada mediante macros las cuales pueden ser consultadas en el archivo de cabecera gdkkeysyms.h donde estan declaradas y en caso de toparse, en este caso , con los digitos 1 y 0 (que son los valores que queremos permitir) devolvera como retorno un estado FALSE, para que pueda ser capturada por el entry.

gboolean txt_entrada_keypress(GtkWidget *widget,GdkEventKey *event,gpointer data)
{
/*
* Estas teclas corresponden al panel numerico
* situado en la parte superior
*/

if ((event->keyval == GDK_0) || (event->keyval == GDK_1))
{
return FALSE;
}

/*
* Estas teclas corresponden al panel numerico
* situado a la derecha
*/

if ((event->keyval == GDK_KP_0) || (event->keyval == GDK_KP_1))
{
return FALSE;
}
/* Permitimos borrar */
if ((event->keyval == GDK_BackSpace) || (event->keyval == GDK_Delete))
{
return FALSE;
}

/* Permitimos algunas teclas especiales de desplazamiento… */
if ((event->keyval == GDK_Home) || (event->keyval == GDK_End))
{
return FALSE;
}

if ((event->keyval == GDK_Left) || (event->keyval == GDK_Right))
{
return FALSE;
}

return TRUE;
}

Mas Informacion: http://developer.gnome.org



Ultima actualización el 05-06-2007 @ 05:05 am




Añadir un comentario
Añadir un comentario
Ver más artículos
Ver más artículos
Journal ©
 



Copyright | Términos de uso | Política de privacidad | Publicidad | Contáctanos | Blog