🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: es.comp.os.linux.programacion
4 messages
4 total messages Started by VIC Tue, 24 Aug 1999 00:00
Problema programando con Gtk
#18504
Author: VIC
Date: Tue, 24 Aug 1999 00:00
10 lines
901 bytes
Hola,
Quisiera plantear una problema que me surgio mientras programaba una aplicacion usando gtk.
Si por cualquier razon se para una funcion conectada a un boton (esperando una pulsacion del
teclado o un movimiento del raton por ejemplo), toda la aplicacion se detiene tambien y deja
de responde a los eventos.
�Como se puede evitar esto?
Gracias de antemano.

VIC.
vic@ceramica.incar.csic.es
Re: Problema programando con Gtk
#18510
Author: Luigi
Date: Thu, 26 Aug 1999 00:00
31 lines
1490 bytes
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.

Salu2.
Luigi.
S.U.S.E. 6.0   ---   Linux User:135509


VIC escribi� en mensaje <935446622.124909269@news.mad.ttd.net>...
>Hola,
>Quisiera plantear una problema que me surgio mientras programaba una
aplicacion usando gtk.
>Si por cualquier razon se para una funcion conectada a un boton (esperando
una pulsacion del
>teclado o un movimiento del raton por ejemplo), toda la aplicacion se
detiene tambien y deja
>de responde a los eventos.
>�Como se puede evitar esto?
>Gracias de antemano.
>
>VIC.
>vic@ceramica.incar.csic.es
Re: Problema programando con Gtk
#18511
Author: VIC
Date: Thu, 26 Aug 1999 00:00
21 lines
1302 bytes
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
Re: Problema programando con Gtk
#18513
Author: Joaqu�n Cuenca Abela
Date: Fri, 27 Aug 1999 00:00
62 lines
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.
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads