Ver Mensaje Individual
  #1 (permalink)  
Antiguo 16/02/2003, 16:54
fran86
 
Fecha de Ingreso: agosto-2002
Ubicación: Colón - Entre Rios - Argentina
Mensajes: 647
Antigüedad: 22 años, 8 meses
Puntos: 8
GtkProgressBar que no progresa

Estoy tratando de crear una ProgressBar pero cuando se abre la ventanita la barra esta a 0% y luego de terminar la operacion recien alli salta a 100%, o sea que no progresa.

Para crearla uso esto:
Código PHP:
<?php

   $ventana2 
= &new GtkWindow();
   
$ventana2->connect('destroy''shutdown');
   
$ventana2->set_title("GTK.LimpiaRepetidos 0.1");
   
$ventana2->set_position("GTK_WIN_POS_CENTER_ALWAYS");
   
$ventana2->set_policy(010);  // Esto es igual que lo predeterminado pero despues lo cambio
   
$ventana2->set_border_width(10);

   
$frame =  &new GtkFrame();
   
$frame->set_label("Por favor espere. Calculando...");
   
$ventana2->add($frame);
   
$frame->show();

      
$boxv = &new GtkvBox(010);
      
$boxv->set_border_width(5);
      
$frame->add($boxv);
      
$boxv->show();

         
$adjustment = &new GtkAdjustment(0.00.0100.00.00.00.0);
         
//$adjustment = &new GtkAdjustment(0.5, 100.0, 200.0, 0.0, 0.0, 0.0);

         
$value $adjustment->value;
         
$progreso = &new GtkProgressBar($adjustment);
         
$progreso->set_show_text(true);
         
$progreso->set_usize(gdk::screen_width()/1.235);
         
$boxv->pack_start($progreso);
         
$ventana2->add($progreso);
         
$progreso->show();


         
$boton = &new GtkButton("Cancelar");
         
$boton->connect('clicked''PreguntaCancelar'$ventana2);
         
$boxv->pack_end($boton);
         
$boton->show();

   
$ventana2->show_all();

         
Calcula($entry$progreso);
?>
La funcion PreguntaCancelar es solo un GtkDialog para cancelar, por eso no la explico.

La funcion Calcula es + o - asi:

Código PHP:
<?php
function Calcula($entry$progreso) {
   
$lineas file($entry); // tiene paths de muchos archivos.
         
   
$todo count($lineas);
   
$suma 1/$todo;   

   
$value 0;

   for(
xxxxx) {    //for que recorre el array de file
      // Se obtienen stats de los archivos
      
$value += $suma;
      
$progreso->set_percentage($value);
   }
}
?>
Los valores de $values estan bien porque les hago un echo y desde la consola veo como aumentan hasta llegar a 1, asi que no se k es, puede ser (y es muy probale) que no entienda bien como funciona ProgressBar, y es que empece con esto de GTK hace un pas de dias.
En el ejemplo del manual (que si anda) vi que se usa gtk::timeout_add, y ademas mi pregunta es ¿para que es eso?.

Saludos!