[Kde-devel-es] Problemilla con QWizard

Francisco Gimeno francisco.gimeno at telvent-rtd.com
Wed Feb 18 12:59:11 CET 2004


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


More information about the Kde-devel-es mailing list