Tengo problemas para entender cómo funciona el componente ProgressBar. Pongo en antecedentes: después de una serie de acciones, modulo4 va a invocar a modulo5. Resulta que puede procesar hasta 1000 ficheros y por supuesto, te puedes morir esperando. Por lo tanto, he pensado en el desarrollo de un ProgressBar a fin de que la gente sepa que estamos vivos. Este ProgressBar, lo he implementado en un GtkDialog llamado modulo5.
Pensé que lo tenía claro pero se me queda la pantalla estática en modulo5, aparece los valores por defecto, es decir, "Copiando el fichero... " en el label y 0.00% en la barra y no hace absolutamente nada.
Por favor, ¿alguien me puede echar un cable?
Muchas gracias.
Falkom
P.D.: Los widget los estoy haciendo con Glade por si puede dar una pista.
Using perl Syntax Highlighting
- sub on_modulo_4_btn_adelante_clicked {
- $vmodulo_4->hide();
- $modulo_5_pbar->set_orientation('left-to-right');
- $modulo_5_pbar->set_text("0.00%");
- $modulo_5_label->set_markup("Copiando el fichero... ");
- $vmodulo_5->show_all();
- my @ficheros = $vmodulo_2->get_filenames;
- my $total_ops = @ficheros;
- my $increment = 1 / $total_ops;
- my $fraction = $modulo_5_pbar->get_fraction;
- for (my $i = 0; $i < @ficheros; $i++) {
- if (!$vmodulo_5->run) {
- $vmodulo_5->destroy;
- return;
- }
- if ($fraction <= 1.0) {
- $modulo_5_pbar->set_fraction($fraction);
- $fraction += 0.01;
- }
- while (Gtk2->events_pending) {
- Gtk2->main_iteration;
- }
- Gtk2::Gdk->flush;
- $modulo_5_label->set_markup("Copiando el fichero... " . $ficheros[$i]);
- $modulo_5_pbar->set_text($fraction);
- copiar($ficheros[$i]);
- }
- }
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4