Bueno muchachos os cuento algunos avances y nuevos problemas con 
respecto a Gazpacho y las librerías GTK+.
 (disculpen si resulto un poco pesado ya, pero como dicen por mi barrio "todos 
lo pesados llegan a Roma"; ... ésto me lo acabo de inventar ...).

Hasta ahora utilizar Gazpacho me ha resultado bastante más fácil de lo que yo 
esperaba.

Para hacer referencia a un botón sólo hay que poner el código:

****************************************************************************
GtkWidget *button1;
GladeXML *xml;


  //Conectamos con la interfaz
  xml = glade_xml_new("saludo3.glade", NULL, NULL);
  glade_xml_signal_autoconnect(xml);


  //Conectamos con el botón button1
  button1 = glade_xml_get_widget (xml, "button1");
********************************************************************************


Para controlar el evento de cuando se pulsa el botón:

********************************************************************************

g_signal_connect (G_OBJECT (button1), "clicked", G_CALLBACK 
(on_button1_clicked), NULL);


void on_button1_clicked(){
        printf("Has pulsado el boton 1\n");
}

Y cuando pulses el botón que con Gazpacho lo has llamado button1, se imprimirá 
en línea de comandos:

$ Has pulsado el boton 1

**************************************************************************************************

Lo de antes parece una chorrada pero a partir de aquí se te abre un mundo, ya 
que en lugar de hacer una función que imprima "Has pulsado el boton 1", puedes 
hacer cosas bastante más complejas.



AHORA MI NUEVO PROBLEMA ES EL SIGUIENTE:

En la interfaz tengo un botón de estos que es para seleccionar archivos, en 
concreto se llaman "filechooserbutton".

Parece que hago referencia a él correctamente:

GtkWidget *filechooserbutton1;
filechooserbutton1 = glade_xml_get_widget (xml, "filechooserbutton1");

Pero ahora lo que pretendo es obtener el nomrbre del fichero que selecciona el 
usuario.

He estado probando varios métodos que vienen en el programa Gazpacho.

"add"
"show"
"button-press-event"
"client-event"
"event"

El único que he conseguido hacer funcionar es "event", de la siguiente forma:

g_signal_connect (G_OBJECT (filechooserbutton1), "event", 
G_CALLBACK(on_filechooserbutton1_event), NULL);

Pero lo único que hace "event", es ejecutarse cada vez que se mueve el ratón.


¿Alguno de ustedes sabe como recuperar el nombre del archivo que selecciona el 
cliente con el botón filechooserbutton1?


Un saludo, gracias por leerlo, no obstante seguiremos investigando.

Aprovecho para deciros que si os quereis instalar OpenCV en Ubuntu, esta receta 
va al pelo:

http://dircweb.king.ac.uk/reason/opencv_cvs.php#Dapper


/******************************************************************/
Las mejores cosas de este mundo suelen ser gratis.















----------------------------------------> From: [EMAIL PROTECTED]> To: 
[email protected]> Date: Mon, 1 Oct 2007 22:43:21 +0000> Subject: Re: 
[CRySoL] Glade, or Gazpacho: that is the question>>> Hola a todos, os cuento el 
último problemilla que tengo con Gazpacho. Verán el código que tengo para 
conectar con la interfaz que he creado es el siguiente:>>>> #include> #include> 
#include> #include>>>> GtkWidget * prueba_crear_main(void);> void 
on_window1_destroy();>>>> 
/*********************************************************************************************>
 * Funcion principal main> 
*********************************************************************************************>>
 int main(int argc, char *argv[]) {> GtkWidget* window_main;>>>> 
gtk_init(&argc, &argv);>> window_main = prueba_crear_main();>> /* Iniciar el 
ciclo principal */> gtk_main();>> return 0;> }>> 
/*****************************************************************************************>
 * fin del main> 
*****************************************************************************************/>>>>
 
/*******************************************************************************>
 * CARGAMOS LA VENTANA> 
*******************************************************************************>>
 GtkWidget * prueba_crear_main(void){> GladeXML *xml;> GtkWidget *window;>> xml 
= glade_xml_new("saludo3.glade", NULL, NULL);> 
glade_xml_signal_autoconnect(xml);>> window = glade_xml_get_widget (xml, 
"principal");>>>> window = gtk_window_new (GTK_WINDOW_TOPLEVEL);> 
gtk_window_set_default_size (GTK_WINDOW (window), 800, 500);>> g_signal_connect 
(window, "destroy",G_CALLBACK (on_window1_destroy), NULL);>>> return window;> 
}>>>> 
/*****************************************************************************> 
* Funcion que al pinchar salir en la ventana se ejecuta y fuerza la salida del 
programa> 
*****************************************************************************>> 
void on_window1_destroy(){> gtk_main_quit();>> }>>>>> Lo compilo como 
siempre:>> $ gcc -o aver2 aver.c `pkg-config --cflags --libs gtk+-2.0 
libglade-2.0`>> ¡ y guay!, me crea el ejecutable.>> entonces yo hago:>> $ 
./aver2>> y vale la ventana me la muestra bien, pero en línea de comandos me 
sale la siguiente mierda:>> (aver2:9788): libglade-WARNING **: could not find 
signal handler 'on_window1_destroy'.>>> Es decir como que no me reconoce el 
método "on_window1_destroy".>> Vale, alguno que haya utilizado glade, glade-3 o 
Gazpacho, podría pensar que se me ha olivado ponerlo en el apartado de señales 
de la ventana principal "window1", pero no, justo en:>> -GtkObject> - destroy 
on_window1_destroy>> (Esto está en el programa Gazpacho)>>> He estado buscando 
por ahí, y he leido que quizá me podría faltar la librería:>> #include>> pero 
no creo que este sea el problema, ya que a mi me da el problema con libglade.> 
el enlace está aquí:>> 
http://listas.hispalinux.es/pipermail/gnome-libros/2006-June/000852.html>>> ¿A 
alguno de ustedes le ha pasado esto alguna vez?>> Venga un saludo, no obstante 
seguiré investigando.>>>> 
*******************************************************************************>
 "Por mucho que camine nunca alcanzaré la utopía, pero al menos para eso me 
sirve, para caminar" eslogan de una manifestación ANTIglobalización... si , 
esos locos dando gritos que nos sacan en los telediarios a la hora de comer ... 
. ¿Acaso un loco escribiría una frase como la anterior? ...>>>>>>>>>>>>>>>>>> 
----------------------------------------> From: [EMAIL PROTECTED]> To: 
[email protected]> Date: Sun, 30 Sep 2007 18:25:22 +0000> Subject: Re: 
[CRySoL] Glade, or Gazpacho: that is the question>>> Os cuento alguno de los 
últimos avances con Gazpacho.> Al igual que glade o glade-3, Gazpacho genera 
archivos .glade (esto es la interfaz que creas y luego guardas).>> Hasta ahora 
sólo sabía cargar la interfaz (el archivo .glade ), dese Python, el código es 
el siguiente:> (El archivo en mi caso se llama saludo3.glade)>>> #Importamos 
las librerias Gtk necesarias> import gtk> from gtk import glade>> #Creamos 
nuestra clase principal> class saludo:> def __init__ (self):>> #Cargamos el 
archivo .glade> self.xml = glade.XML("saludo3.glade", None, None)> 
self.xml.signal_connect("on_principal_destroy",lambda w: gtk.main_quit())>>> 
#Iniciamos la aplicacion> if __name__ == "__main__":> c = saludo()> 
gtk.main()>>> Para compilar:>> $ python este_archivo.py>>>>> Pero esta tarde 
también he aprendido a cargarla desde C, el código es el sigiuente:>> #include> 
#include>>> int main(int argc, char *argv[]) {> GladeXML *xml;>> 
gtk_init(&argc, &argv);>> /* Cargar la interfaz de usuario */> xml = 
glade_xml_new("saludo3.glade", NULL, NULL);>> /* Conectar las señales de la 
interfaz */> glade_xml_signal_autoconnect(xml);>> /* Iniciar el ciclo principal 
*/> gtk_main();>> return 0;> }>>> Para compilar:>> $ gcc -o este_archivo 
este_archivo.c `pkg-config --cflags --libs gtk+-2.0 libglade-2.0`> 
$./este_archivo>>>>> la librería libglade, te permite a partir del archivo XML 
que define una interfaz creada con glade generarla en tiempo de ejecución, sin 
la necesidad de código en C generado. Desde entonces, ya no es recomendable 
usar el código generado por glade, y se da preferencia al uso de esta 
librería.>>> Por ahora nada màs, ahora toca ponerse a controlar los eventos de 
los botones y todo eso.>> Un saludo.>>>>>>>>> 
----------------------------------------> From: [EMAIL PROTECTED]> To: 
[email protected]> Date: Sun, 30 Sep 2007 10:44:20 +0000> Subject: Re: 
[CRySoL] Glade, or Gazpacho: that is the question>>>>>>>>Puedes subirlo como 
receta.> Un saludo!>> Hola David!, pues si, al final me va a tocar ponerlo como 
receta, aunque más que una receta va ser un mini libro de cocina (son unas 20 
caras), pero en fin, todo sea para que le pueda ser útil a alguien.>> Un 
saludo.>> 
**************************************************************************************************>
 Siempre pongo citas, pero lo cierto es que hace tiempo que no tengo una.>>>>> 
El sáb, 29-09-2007 a las 23:20 +0000, manuel david jimenez patiño> escribió:>> 
Oye muchachos os estaba adjuntando un manual de introducción a glade, glade-3 y 
Gazpacho,que había estado realizando estos días. pero parece ser que ocupa más 
de 100 KB y no me deja adjuntarlo.>>>> He mirado la sección de manuales en 
Crysol, pero creo que yo no lo puedo subir ..., así que de momento mi manual 
está aquí inutilizado en mi escritorio, que rabia ... .>>>> Un saludo.>>>> 
*******************************************************************************************************
 Anímense hombre, ¡que todos los días toca! ..., toca ver el cielo, toca 
aprender, toca reir, toca luchar ... .¿Existe lotería mejor?>>>>>>>>>> 
----------------------------------------> From: [EMAIL PROTECTED]> To: 
[email protected]> Date: Sun, 23 Sep 2007 11:25:32 +0000> Subject: Re: 
[CRySoL] Glade, or Gazpacho: that is the question>>> Vale. Voya ver que soy 
capaz de hacer estas semanas.>> Un saludo.>>> ________________________________> 
Date: Sun, 23 Sep 2007 02:23:09 +0200> From: [EMAIL PROTECTED]> To: [EMAIL 
PROTECTED]> Subject: Re: [CRySoL] Glade, or Gazpacho: that is the question> CC: 
[email protected]>> Si haces un tuto, cuelga la receta en 
www.crysol.org> Un saludo.> El día 22/09/07, manuel david jimenez patiño < 
[EMAIL PROTECTED]> escribió:>> 
_________________________________________________________________> Prueba 
algunos de los nuevos servicios en línea que te ofrece Windows Live Ideas: tan 
nuevos que ni siquiera se han publicado oficialmente todavía.> 
http://ideas.live.com> _______________________________________________> CRySoL 
mailing list> http://crysol.inf-cr.uclm.es/> 
https://arco.inf-cr.uclm.es/cgi-bin/mailman/listinfo/crysol>>>> 
_________________________________________________________________>> Busca desde 
cualquier página Web con una protección excepcional. Consigue la Barra de 
herramientas de Windows Live hoy mismo y GRATUITAMENTE.>> 
http://www.toolbar.live.com>> _______________________________________________>> 
CRySoL mailing list>> http://crysol.inf-cr.uclm.es/>> 
https://arco.inf-cr.uclm.es/cgi-bin/mailman/listinfo/crysol>>> 
_________________________________________________________________> ¡Ya está 
aquí Windows Live Spaces! Ahora podrás crear fácilmente tu propio sitio Web.> 
http://spaces.live.com/signup.aspx> 
_______________________________________________> CRySoL mailing list> 
http://crysol.inf-cr.uclm.es/> 
https://arco.inf-cr.uclm.es/cgi-bin/mailman/listinfo/crysol>> 
_________________________________________________________________> ¡Ya está 
aquí Windows Live Spaces! Ahora podrás crear fácilmente tu propio sitio Web.> 
http://spaces.live.com/signup.aspx> 
_______________________________________________> CRySoL mailing list> 
http://crysol.inf-cr.uclm.es/> 
https://arco.inf-cr.uclm.es/cgi-bin/mailman/listinfo/crysol>> 
_________________________________________________________________> ¡Ya está 
aquí Windows Live Spaces! Ahora podrás crear fácilmente tu propio sitio Web.> 
http://spaces.live.com/signup.aspx> 
_______________________________________________> CRySoL mailing list> 
http://crysol.inf-cr.uclm.es/> 
https://arco.inf-cr.uclm.es/cgi-bin/mailman/listinfo/crysol

_________________________________________________________________
Express yourself instantly with MSN Messenger! Download today it's FREE!
http://messenger.msn.click-url.com/go/onm00200471ave/direct/01/
_______________________________________________
CRySoL mailing list
http://crysol.inf-cr.uclm.es/
https://arco.inf-cr.uclm.es/cgi-bin/mailman/listinfo/crysol

Responder a