Alejandro,
Lo mejor seria que te guiaras en el patron de diseño llamado "observer" (o pocas veces tambien llamado Spider). Este explica la logica de funcionamiento de un miron (jejeje), el cual te va entregando los avances de una clases, la cual se muestra en una barra de progreso (ya que basicamente hacer que se mueva una barra de progreso no tiene logica alguna y es muy simple, pero el asunto es que dicha barra, vaya acorde con los procesos que se van realizando en tus clases). En google existen varias paginas donde explican el patron. Cualquier duda, solo consulta
Pd.: Existen varias implementaciones para la orientacion a objeto, para eso te recomiendo que te leas un libro de "patrones de diseño"
Saludos
Mauricio Felipe Pacheco D.
Ingeniero en Informática
FONDEF 1055
Universidad de Chile
Fono: 9784476
--
Message: 1
Date: Tue, 17 Oct 2006 15:24:23 -0300
From: Germán Poó Caamaño <[EMAIL PROTECTED]>
Subject: Re: progressbar
To: [EMAIL PROTECTED], "Advocacy, chit-chat and event planning in
Chile" <[email protected]>
Message-ID: <[EMAIL PROTECTED]>
Content-Type: text/plain; charset=ISO-8859-1
On Tue, 2006-10-17 at 12:36 -0300, Alejandro Valdes Jimenez wrote:
> Estimados...
>
> ¿cual será la manera de implementar un progressbar mientras se ejecuta
> una tarea?
>
> pregunto esto ya que necesito que mientras ejecuto una acción, se active
> la barra de progreso hasta que termine la acción, sin embargo, solo he
> logrado que la barra se active una vez terminada la acción.
>
> Ya me han dicho que con threads se puede, sin embargo, no logro entender
> bien como complementar ambas cosas.
Tienes que definir períodos entre los cuales deseas actualizar la
barra de progreso. Por ejemplo, si tienes tareas que puedes enumerar
o contar, entonces cada vez que terminas una de dichas tareas,
actualizas la barra de progreso (gtk_progress_bar_set_fraction).
Típicamente dentro de una iteración, por cada iteración actualizas
los valores de la barra de progreso.
La barra de progreso no se va a actualizar sola. A menos que sea
de tipo 'pulse', donde lo único que aparece es el 'progreso'
moviéndose de un lado hacia otro. Eso se emplea cuando no sabes
cuando terminará (no puedes determinar el 100%).
Lo de usar hilos va por otro lado. Si la tarea es muy demandante
y no devuelve el control en un período prolongado de tiempo, entonces
da la sensación que la aplicación se ha congelado. Se nota si minimizas
y luego restauras el tamaño de la ventana, ésta se verá completamente
gris, sin controles.
Mientras no soluciones lo primero, no tiene sentido intentar resolver
lo segundo.
--
Germán Poó-Caamaño
http://www.ubiobio.cl/~gpoo/
Concepción - Chile
------------------------------
Message: 2
Date: Tue, 17 Oct 2006 15:39:15 -0300
From: Alejandro Valdes Jimenez <
[EMAIL PROTECTED]>
Subject: [Fwd: Re: progressbar]
To: [email protected]
Message-ID: <[EMAIL PROTECTED]>
Content-Type: text/plain; charset="iso-8859-1"
--
Alejandro Valdés Jiménez.
Area Plataforma
DTI - Dirección de Tecnologías de Información
Universidad de Talca.
Talca - Chile.
Teléfono: (56) (71) 200408
------------ próxima parte ------------
Se ha borrado un mensaje inmerso...
De : Alejandro Valdes Jimenez <[EMAIL PROTECTED]>
Asunto: Re: progressbar
Fecha : Tue, 17 Oct 2006 15:32:18 -0300
Tamaño: 1881
Url : /archives/gnome-cl-list/attachments/20061017/68af3038/attachment.eml
------------------------------
Message: 3
Date: Tue, 17 Oct 2006 15:59:57 -0300
From: Fernando San Martín Woerner <
[EMAIL PROTECTED]>
Subject: Re: [Fwd: Re: progressbar]
To: [EMAIL PROTECTED], "Advocacy, chit-chat and event planning in
Chile" <[email protected]>
Message-ID: <[EMAIL PROTECTED]>
Content-Type: text/plain; charset="iso-8859-1"
Alejandro Valdes Jimenez escribió:
...
>>
> al parecer, threads es mi opción.
Sin tener 0 idea de perl (/me is python), se que existe la posibilidad
de realizar actualizaciones en gtk.main
()
en python se hacer con while gtk.events_pending() ej:
while gtk.events_pending():
gtk.mainiteration(gtk.FALSE)
Buscando en google code search:
lang:perl gtk events_pending
sale un larga lista de ejemplos....
yo partiría por ahí, saludos
--
Fernando San Martín Woerner
Jefe de Informática
Galilea S.A. http://www.galilea.cl/
--
Este mensaje ha sido analizado por nuestros servidores
en busca de virus y otros contenidos peligrosos,
y se considera que está limpio.
------------ próxima parte ------------
Se ha borrado un mensaje que no está en formato texto plano...
Nombre : snmartin.vcf
Tipo : text/x-vcard
Tamaño : 239 bytes
Descripción: no disponible
Url : /archives/gnome-cl-list/attachments/20061017/fce57fcc/attachment.vcf
------------------------------
Message: 4
Date: Tue, 17 Oct 2006 16:16:13 -0300
From: Alejandro Valdes Jimenez <[EMAIL PROTECTED]>
Subject: Re: progressbar
To: Claudio Saavedra <
[EMAIL PROTECTED]>
Cc: "Advocacy, chit-chat and event planning in Chile"
<[email protected]>
Message-ID: <[EMAIL PROTECTED]
>
Content-Type: text/plain; charset=ISO-8859-1
gracias a todos...
while (Gtk2->events_pending) {
Gtk2->main_iteration;
}
eso me ayudó.
ahora hay que afinarlo.
El mar, 17-10-2006 a las 13:45 -0300, Claudio Saavedra escribió:
> On Tue, 2006-10-17 at 12:36 -0300, Alejandro Valdes Jimenez wrote:
> > Estimados...
> >
> > ¿cual será la manera de implementar un progressbar mientras se ejecuta
> > una tarea?
> >
> > pregunto esto ya que necesito que mientras ejecuto una acción, se active
> > la barra de progreso hasta que termine la acción, sin embargo, solo he
> > logrado que la barra se active una vez terminada la acción.
> >
> En el ciclo donde ejecutas tu tarea, usa gtk_events_pending ():
>
> /* computation going on */
> ...
> while (gtk_events_pending ())
> gtk_main_iteration ();
> ...
> /* computation continued */
>
>
> Claudio
>
--
Alejandro Valdés Jiménez.
Area Plataforma
DTI - Dirección de Tecnologías de Información
Universidad de Talca.
Talca - Chile.
Teléfono: (56) (71) 200408
------------------------------
Message: 5
Date: Tue, 17 Oct 2006 16:27:06 -0300
From: Fernando San Martín Woerner <
[EMAIL PROTECTED]>
Subject: Re: progressbar
To: [EMAIL PROTECTED], "Advocacy, chit-chat and event planning in
Chile" <
[email protected]>
Message-ID: <[EMAIL PROTECTED]>
Content-Type: text/plain; charset="iso-8859-1"
Alejandro Valdes Jimenez escribió:
> gracias a todos...
>
> while (Gtk2->events_pending) {
> Gtk2->main_iteration;
> }
en general el truco sirve para actualizar la ui durante un ciclo, ojo
que tu aplicación queda más lenta dado que la ui se va repintando.
saludos
--
Fernando San Martín Woerner
Jefe de Informática
Galilea S.A. http://www.galilea.cl/
--
Este mensaje ha sido analizado por nuestros servidores
en busca de virus y otros contenidos peligrosos,
y se considera que está limpio.
------------ próxima parte ------------
Se ha borrado un mensaje que no está en formato texto plano...
Nombre : snmartin.vcf
Tipo : text/x-vcard
Tamaño : 239 bytes
Descripción: no disponible
Url : /archives/gnome-cl-list/attachments/20061017/e3b11b59/attachment.vcf
------------------------------
Message: 6
Date: Tue, 17 Oct 2006 16:30:41 -0300
From: Alejandro Valdes Jimenez <[EMAIL PROTECTED]>
Subject: Re: progressbar
To: Fernando San Martín Woerner <
[EMAIL PROTECTED]>
Cc: "Advocacy, chit-chat and event planning in Chile"
<[email protected]>
Message-ID: <[EMAIL PROTECTED]>
Content-Type: text/plain; charset=ISO-8859-1
El mar, 17-10-2006 a las 16:27 -0300, Fernando San Martín Woerner
escribió:
> Alejandro Valdes Jimenez escribió:
> > gracias a todos...
> >
> > while (Gtk2->events_pending) {
> > Gtk2->main_iteration;
> > }
>
> en general el truco sirve para actualizar la ui durante un ciclo, ojo
> que tu aplicación queda más lenta dado que la ui se va repintando.
asi se ve, sin embargo, ya no se pone gris la ventan hasta el termino de
la tarea. claro que podría ser mas bonito. :D
>
> saludos
>
>
> --
> Fernando San Martín Woerner
> Jefe de Informática
> Galilea S.A. http://www.galilea.cl/
>
--
Alejandro Valdés Jiménez.
Area Plataforma
DTI - Dirección de Tecnologías de Información
Universidad de Talca.
Talca - Chile.
Teléfono: (56) (71) 200408
------------------------------
Message: 7
Date: Tue, 17 Oct 2006 13:45:15 -0300
From: Claudio Saavedra <[EMAIL PROTECTED]>
Subject: Re: progressbar
To: [EMAIL PROTECTED], "Advocacy, chit-chat and event planning in
Chile" <[email protected]>
Message-ID: <[EMAIL PROTECTED]
>
Content-Type: text/plain; charset=utf-8
On Tue, 2006-10-17 at 12:36 -0300, Alejandro Valdes Jimenez wrote:
> Estimados...
>
> ¿cual será la manera de implementar un progressbar mientras se ejecuta
> una tarea?
>
> pregunto esto ya que necesito que mientras ejecuto una acción, se active
> la barra de progreso hasta que termine la acción, sin embargo, solo he
> logrado que la barra se active una vez terminada la acción.
>
En el ciclo donde ejecutas tu tarea, usa gtk_events_pending ():
/* computation going on */
...
while (gtk_events_pending ())
gtk_main_iteration ();
...
/* computation continued */
Claudio
--
Claudio Saavedra <[EMAIL PROTECTED]>
------------------------------
Message: 8
Date: Tue, 17 Oct 2006 16:59:04 -0300
From: "Pablo Pablo" <[EMAIL PROTECTED]>
Subject: Re: progressbar
To: "Advocacy, chit-chat and event planning in Chile"
<
[email protected]>
Message-ID:
<[EMAIL PROTECTED]>
Content-Type: text/plain; charset="iso-8859-1"
alguien sabe como me puedo liberar de esta lista
ya no quiero estar inscrito
Ayuda Plissss
2006/10/17, Claudio Saavedra <[EMAIL PROTECTED]
>:
>
> On Tue, 2006-10-17 at 12:36 -0300, Alejandro Valdes Jimenez wrote:
> > Estimados...
> >
> > ¿cual será la manera de implementar un progressbar mientras se ejecuta
> > una tarea?
> >
> > pregunto esto ya que necesito que mientras ejecuto una acción, se active
> > la barra de progreso hasta que termine la acción, sin embargo, solo he
> > logrado que la barra se active una vez terminada la acción.
> >
> En el ciclo donde ejecutas tu tarea, usa gtk_events_pending ():
>
> /* computation going on */
> ...
> while (gtk_events_pending ())
> gtk_main_iteration ();
> ...
> /* computation continued */
>
>
> Claudio
>
> --
> Claudio Saavedra <[EMAIL PROTECTED]>
>
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: /archives/gnome-cl-list/attachments/20061017/1c13986f/attachment.htm
Fin de Resumen de gnome-cl-list, Vol 21, Envío 11
*************************************************
--
- Re: progressbar (Mauricio Pacheco) Mauricio Felipe
- Re: progressbar (Mauricio Pacheco) Alejandro Valdes Jimenez
- Re: progressbar (Mauricio Pacheco) Germán Poó Caamaño
