[pyGTK] avance en un progressbar

Arnau Sanchez pyarnau en gmail.com
Lun Oct 27 18:10:10 CET 2008


Milton Galo Patricio Inostroza Aguilera escribió:

> correr mi tarea y aquí nace la primera pregunta...he leído de la
> documentación que gobject.idle_add sirve para ejecutar tareas cuando
> el main de gtk no tiene nada más que hacer ¿eso no lo resta prioridad
> a mi tarea?¿sólo basta con cambiar las prioridades que señalan en la
> documentación?.

Existen dos prioridades predefinidas para usarse con gobject.idle_all: 
gobject.PRIORITY_DEFAULT_IDLE y gobject.PRIORITY_HIGH_IDLE (son valores 
numéricos, así que -aunque poco recomendable- puedes poner valores intermedios 
si quieres). En el 99% de los casos será suficiente usar la que viene por 
defecto; establecer un nivel alto significa que tu tarea pasa por delante de las 
propias del GUI (repintado, cambio de tamaño, etc), y eso suele ser innecesario 
(y gráficamente desagradable para el usuario).

El GUI (normalmente) tarda muy poco en hacer sus propias tareas, así que no va a 
ralentizar las tuyas, aunque éstas tengan menor prioridad. Las prioridades 
suelen ser más útiles cuando has lanzado varias tareas propias y quieres 
establecer a cuál dedicar más recursos.

>    Tuve que agregar un time.sleep(0.05) para que la barra no avanzara
> de forma tan rápida y claro de forma antinatural para el usuario...Acá
> viene mi segunda pregunta..¿No existe otra forma de que la barra
> avance de forma más suave?...ya que si se fijan por hacer algo
> "cosmetico" estoy retardando la ejecución de la tarea que
> verdaderamente importa...o será como no estoy haciendo nada de
> computo, luego cuando agregue funcionalidades mayores avanzará más
> lento?...

Siempre puedes llamar a pulse() cada N iteraciones.

arnau

-- 
Web freelance: http://tokland.freehostia.de
------------ próxima parte ------------
_______________________________________________
Lista de correo Python-es 
http://listas.aditel.org/listinfo/python-es
FAQ: http://listas.aditel.org/faqpyes


Más información sobre la lista de distribución Python-es