lunes, 1 de agosto de 2011

Instalar QT para Codeblocks

Primero que todo descargar las librerías de Qt para minGW ya que si se esta utilizando codeblocks es muy acertado utilizar las librerías de minGW para compilar. Las librerias se encuentran en: http://qt.nokia.com/downloads

Seguir los siguientes pasos:
1. Instalar las librerías preferiblemente en la unidad C: , D: etc.
2. En settings->compiler and debugger->Linker settings en link libraries adicionar:

     C:\Qt\4.7.3\lib\libQtGui4.a
     C:\Qt\4.7.3\lib\libQtCore4.a

3. En search directories adicionar
     C:\Qt\4.7.3\include
     C:\Qt\4.7.3\include\QtCore
     C:\Qt\4.7.3\include\QtGui

4. En settings->gloval variables new en el textbox poner el nombre, que puede ser: qt
    En base poner C:\Qt\4.7.3\
    En user-defined fields:
    Primer texbox  mkspecs
    Segundo texbox $(#qt)mkspecs
 
NOTA1: no olvidar agregar la carpeta C:\Qt\4.7.3\bin al path en las variables de entorno de windows ya que sin esto no podrán utilzar moc, qmake ni uic directamente.

Para utilizar el Qtdesigner es necesario lo siguiente:

1. crear el widget o window en el QTdesigner.
2. guardar el archivo en la carpeta de nuestro proyecto.
3. crear el header del archivo ui. Para crear el header en consola estando en el directorio del proyecto:
   uic nombrearchivo.ui -o nombrearchivo.h
4. incluir el archivo de cabecera donde sea necesario este sera el archivo generado con nombrearchivo.h
5. es necesario crear los makefiles y el archivo .pro para esto en consola estando en el directorio del proyecto. qmake -proyect y luego qmake.

NOTA2: Hay un error (undefined reference to `vtable for ') que se genera por utilizar la macro Q_OBJECT sin tener los archivos moc generados para eso:
En consola y en el directorio del proyecto:

1. Poner en consola moc nombrearchivo.h -o moc_nombrearchivo.cpp
2. Luego en el archivo nombrearchivo.cpp poner #include "include moc_nombrearchivo.cpp"

En este caso el archivo nombrearchivo utiliza la macro Q_OBJECT necesaria para utilizar signals y slots.