2009-01-26

Crear aplicaciones Qt en Windows usando Microsoft Visual C++ 2008

Hola, para los que no saben que es Qt se trata de una API multiplataforma para crear aplicaciones nativas en Windows, Linux, mac, Solaris, etc y poder portarlas sin cambiar ninguna línea de código. Si quieren ver más información sobre este paquete pueden visitar: http://www.qtsoftware.com/

Yo ya había escrito dos posts en este mismo blog sobre Qt y como instalarlo en Linux, si quieren darles un vistazo:

El remplazo de Visual Basic
Instalar Qt4

La verdad es que había estado intentando hacer correr este paquete en Windows pero hasta ahora no había podido, traté con DevC++ y con Eclipse pero nada, quien pensaría que la solución era un producto de Microsoft.

Recientemente Microsoft liberó las versiones Express del Visual Studio 2008 que se pueden descargar gratuitamente. Con este producto podemos compilar el Qt y también crear nuestras propias aplicaciones. En este post explicaré como hacerlo.

Obviamente lo primero es descar e instalar el Visual C++ 2008 Express Edition, una vez instalado (pesa como 150 MB) debemos descargar la versión de Código Fuente de Qt4 para Windows de la página de Qt Software. Ojo, no descargen la versión que viene con el MinGW sino la que es solo código fuente. La descarga pesa como 120 MB, es un archivo comprimido.

Descargamos el archivo y lo descomprimimos en C:\Qt\4.4.3 [EL NOMBRE DE LA CARPETA NO DEBE CONTENER ESPACIOS] (la 4.4.3 fue la versión que yo bajé pero puede que para el momento en que lean este post sea una más reciente). En esa carpeta queda un archivo que se llama configure.exe este es el autconf del builder, hay que ejecutarlo PERO NO SE PRECIPITEN, LEAN ABAJO.

Vamos a Inicio -> Todos los Programas -> Microsoft Visual C++ 2008 Express Edition -> Visual Studio Tools -> Símbolo del Sistema de Visual Studio 2008, esto nos abre una consola en el directorio del Visual C++ y habilita los paths para el maker, y el linker.

En esta consola nos vamos a C:\Qt\4.4.3\ (o el directorio donde hayan descomprimido el qt), una vez allí ejecutamos:

C:\Qt\4.4.3\>configure -platform win32-msvc2008

Este comando prepara el código para que se pueda compilar con el compilador de Microsoft Visual Studio 2008, una vez temine el proceso veremos un mensaje como este:

Qt is now configured for building. Just run nmake.
To reconfigure, run nmake confclean and configure.

Entonces simplemente hacemos lo que dice ahi, ejecutamos nmake para que Visual C++ empiece a compilar. Este proceso tarde un rato, igual que en Linux, la consola va a estar compilando durante un tiempo creando los ejecutables de Qt Designer, Qt Assistant, el moc, etc y las dll de Qt, cuando el proceso termina Qt esta compilado e instalado en el equipo listo para usarse.

Ahora vamos a ver como crear un programita en Qt usando el Visual C++, vamos a crear el Hello World del tutorial de Qt. Pero primero hay algo adicional que debemos hacer y es agregar la carpeta bin de Qt al Path del Sistema:

Damos clic en Inicio y luego clic derecho en Mi PC, ahi vamos a Propiedades y en la pestaña de Opciones Avazadas le damos clic en Variables de Entorno, aparece un cuadro de diálogo con las variables de sistema y las variables de usuario, en las variables de sistema buscamos la variable Path, la seleccionamos y damos clic en Modificar. Al final del texto colocamos un ; (punto y coma) y despues escribimos la ruta del bin de Qt, que en mi caso era C:\Qt\4.4.3\bin y damos clic en Aceptar en todos los cuadros de diálogo.

Ahora si vamos a crear el Hello World.

Abrimos el Visual C++ 2008 y cremos un Nuevo Proyecto, en donde dice Tipo de proyecto seleccionamos Visual C++ -> General -> Proyecto de archivos MAKE. Seleccionamos la ubicación y el nombre del proyecto que en este caso será Hello World. Retiramos la marca de la casilla Crear directorio para la solución y damos clic en Aceptar.

Visual Studio nos abre un asistente para configuración del proyecto de archivos MAKE, vamos a ignorarlo y daremos clic simplemente en Finalizar. Se creará el proyecto y apareceran las carpetas y archivos usuales del Visual C++ (crea un montón de basura).

Vamos a crear el main, entonces, en el Explorador de Soluciones, en la carpeta Archivos de código fuente damos clic derecho y ahi seleccionamos Agregar -> Nuevo Elemento y escojemos Archivo C++ (.cpp), le damos el nombre main y hacemos clic en Aceptar.

El Visual Studio nos abre un editor de código, ahi vamos a escribir el código que está en el Qt Assistant, en el tutorial de Hello World que es este:

#include <QApplication>
#include <QPushButton>

int main(int argc, char *argv[])
{
QApplication app(argc, argv);

QPushButton hello("Hello world!");

hello.show();
return app.exec();
}

Le damos en Guardar y ya estara listo el proyecto, ahora vienen las malas noticias, no podemos compilar desde el IDE (o por lo menos yo no he podido por que hay que configurarlo y yo no me he puesto en esas) así que vamos a compilar por consola:

Abrimos otra vez el Símbolo del Sistema de Visual Studio 2008 que abrimos para compilar el Qt. En esa consola vamos a la carpeta donde hemos guardado el proyecto de Visual C++ y allí escribimos estos comandos:

qmake -project
qmake
nmake

Esto compila el programa y genera el ejecutable en la carpeta Debug, en mi caso Hello World.exe. Desde la misma consola o desde un explorador de Windows podemos ejecutar la aplicación para constatar que funciona.



Bien, ya hemos creado y ejecutado una aplicación en Windows con Qt. Si corre el Hello world corre cualquier cosa. :)

No duden en dejar sus comentarios, dudas o preguntas.

Se cuidan Bye Bye.