Article View: es.comp.os.linux.programacion
Article #18513Re: Problema programando con Gtk
From: Joaqu�n Cuenca Abela
Date: Fri, 27 Aug 1999 00:00
Date: Fri, 27 Aug 1999 00:00
62 lines
3145 bytes
3145 bytes
In article <935704125.865195104@news.mad.ttd.net>, VIC <vic@ceramica.incar.csic.es> wrote: > On Thu, 26 Aug 1999, Luigi wrote: > >Hola, yo acabo de empezar a leer el manual de gtk, por lo que no estoy muy > >puesto en el tema. > > > >Se me ocurre que puedes lanzar la funci�n utilizando un proceso hijo > >(funci�n fork), de esta manera el proceso padre podr�a seguir con la > >ejecuci�n de la aplicaci�n, mientras el hijo trabaja por su parte. > > > >En la gu�a linux de programaci�n explican todo el proceso y la comunicaci�n > >entre procesos. > > > >Es una idea, espero que te sirva. > > > > > > Ya pense en eso, y lo escribi en un thread diferente. El problema no desaparece. > Estoy un poco perdido y quizas no se pueda hacer lo que busco. De todos modos > muchas gracias. > > VIC. > vic@ceramica.incar.csic.es > No lo he comprobado, pero imagino que el problema viene de que no estas dando por finalizado el tratamiento de la se~nal... mira la parte del tutorial dedicada a las se~nales (cf. 18.2). Imagino (repito que no lo he comprobado) que cuando pulsas el boton, el bucle principal gtk_main le pasa el control a tu manejador de se~nal (el manejador que hayas indicado con gtk_signal_connect). Hasta que este manejador no termine no se le devolvera el control a gtk_main, y por tanto toda la aplicacion estara "congelada". Conclusion: La solucion tiene que pasar por "sacar" tu funcion de dentro del manejador de se~nal... lo de hacer un thread o un fork a primera vista parece una buena idea, pero creo que hasta hace muy poquito gtk+ no era multi-thread... vamos, que no creo que sea tan trivial. Puedes poner un ejemplo de lo que quieres hacer? Tal vez puedas arreglarlo con temporizadores. En vez de poner un delay (o lo que uses) tal vez puedas crear una funcion a la que se dentro de x milisegundos, asi no bloquearas el bucle gtk_main. Cuando se llame a la funcion puedes destruir el temporizador (para que asi no vuelva a llamarse a esta funcion dentro de otros x milisegundos). No se si esto te sera de ayuda. Si no es asi, pasame la funcion que quieres poner como manejador y le echo un vistazo. Un saludo! -- Joaqu�n Cuenca Abela e-mail: e98cuenc@criens.u-psud.fr Sent via Deja.com http://www.deja.com/ Share what you know. Learn what you don't.
Technical Details
Message-ID:
<7q6hu3$rvi$1@nnrp1.deja.com>Path:
arc1-ca.pugleaf.net!unknown!not-for-mailReferences:
<935446622.124909269@news.mad.ttd.net> <7q34hu$lbd$1@diana.bcn.ttd.net> <935704125.865195104@news.mad.ttd.net>Show Full Headers
Complete Article Headers
X-Google-Language: SPANISH,ASCII X-Google-Thread: f86c8,3bec801cd30834fd X-Google-Attributes: gidf86c8,public From: Joaqu�n Cuenca Abela <e98cuenc@my-deja.com> Subject: Re: Problema programando con Gtk Date: 1999/08/27 Message-ID: <7q6hu3$rvi$1@nnrp1.deja.com> X-Deja-AN: 517686019 References: <935446622.124909269@news.mad.ttd.net> <7q34hu$lbd$1@diana.bcn.ttd.net> <935704125.865195104@news.mad.ttd.net> To: vic@ceramica.incar.csic.es X-Http-User-Agent: Mozilla/4.5 [en] (X11; I; SunOS 5.4 sun4m) X-Http-Proxy: 1.0 x27.deja.com:80 (Squid/1.1.22) for client 194.57.51.10 Organization: Deja.com - Share what you know. Learn what you don't. X-Article-Creation-Date: Fri Aug 27 17:29:51 1999 GMT X-MyDeja-Info: XMYDJUIDe98cuenc Newsgroups: es.comp.os.linux.programacion