[Kde-devel-es] Problemilla con QWizard

Pedro María de Echanove Pasquín Pedro.Echanove at tuxum.com
Wed Feb 18 13:54:44 CET 2004


Francisco,

lo primero muchas gracias por tu atención.

Con hilos debería funcionar perfectamente, pero no es lo que quiero en este 
caso (por razones que no vienen al caso). Sigo sin entender por que ejecuta 
antes instalacion->Instalar() que QWizard::showPage(page) cuando el orden 
dentro del método es el contrario.

Un saludo,

Pedro Echanove




El Miércoles, 18 de Febrero de 2004 12:59, Francisco Gimeno escribió:
> Hola:
>
> Para lo que quieres hacer, creo que es necesario el uso de hilos. Si bien
> al principio puede parecer una locura, Qt proporciona una forma muy
> sencilla de hacerlo.
>
> Solo tienes que crear una clase que herede de QTthread y sobrecargar el
> metodo run, para usarlo, execute();
>
> El siguiente problema que se te planteara es la comunicacion del proceso
> que esta haciendo cosas con la interfaz grafica. Debes usar mutex cada vez
> que cambies algo de otro hilo.
>
> En fin, suerte, y mirate los ejemplos de Qthread
>
> ---
>
> > Hola a todos
> >
> > Me llamo Pedro y en mi empresa estamos desarrollando una distribucion de
> > Linux basada en Woody con kde 3.2 y orientada al usuario de Windows. En
> > cuanto la acabemos (si Dios quiere este mes) os daré la URL por si
> > alguien quiere bajarse las ISOs. Está quedando muy bien y es muy estable
> > :)
> >
> > En el instalador tengo un problemilla con QWizard. Os paso el trozo del
> > código en el que está el problema, a ver si alguien me puede ayudar.
> >
> > void MainWindow::showPage( QWidget* page )
> > {
> > 	QWizard::showPage(page);
> >
> >         if (page == page4 )
> >         {
> >                 instalacion->Instalar();
> > 	}
> > }
> >
> > void Instalacion::Instalar()
> > {
> >         int i = 1;
> >         QStringList::iterator it;
> >         for ( it = packagesList.begin(); it != packagesList.end(); ++it )
> >         {
> >                 etiqueta->setText("Instalando " + (*it));
> > 		/* Aquí ejecuta apt-get install (*it) */
> >                 barra->setProgress(i);
> >                 i++;
> >         }
> >         etiqueta->setText("La instalaci\xf3n ha terminado. Pulse
> > 'Siguiente' para continuar");
> > }
> >
> > NOTA: MainWindow hereda directamente de QWizard.
> >
> > El metodo instalacion->Instalar() ejecuta una serie de acciones como por
> > ejemplo mostrar el progreso de la instalacion con una QProgressBar. Pero
> > la pagina "page4" del QWizard no se muestra hasta que ha terminado
> > instalacion->Instalar(). ¿Por qué ocurre esto, si la llamada al metodo
> > Preparar es posterior al QWizard::showPage(page4)? He probado a hacer
> > update() y repaint() antes de Instalar(), pero nada.
> >
> > Gracias por adelantado y saludos a todos.
> >
> > Pedro Echanove
> > _______________________________________________
> > Kde-devel-es mailing list
> > Kde-devel-es at kde.org
> > https://mail.kde.org/mailman/listinfo/kde-devel-es
>
> _______________________________________________
> Kde-devel-es mailing list
> Kde-devel-es at kde.org
> https://mail.kde.org/mailman/listinfo/kde-devel-es


More information about the Kde-devel-es mailing list