Que es Qt?

Últimamente en el mundo se escucha mucho ruido sobre una herramienta Qt de Nokia. Bueno lo cierto es que no es nuevo y que Nokia no lo hizo. Es un Framework  para trabajar en C++, que nos otorga muchas ventajas, de hecho casi olvidamos que estamos trabajando en C++. Además de ser tan “poderoso”, tiene un gran respaldo ya que lleva bastante tiempo en el mercado.

Algunos de los programas más populares que usan QT son:

ES UN FRAMEWORK NO UN LENGUAJE

Este es un punto que es obligatorio de tocar, mucha gente en estos días donde se ha escuchado tanto sobre esta herramienta, lo toma como un lenguaje y no es así.

Primero marquemos algunas de las características de un lenguaje y un framework

Ahora que espero haber aclarado que Qt es un framework,  mostraré las ventajas de utilizar Qt.

Al  ser un framework nunca estamos saliendo del lenguaje C++, así que las sentencias para el preprocesador siguen siendo validas, se puede compilar en cualquier entorno. Es decir se puede seguir utilizando sobre Linux, MAC, PC, y ahora en móviles.

Claro bajo ciertas condiciones, Qt debe correr en la máquina. Afortunadamente Qt es open-source lo cual permite compilarlo para cualquier maquina, (un poco más complejo) pero en teoría es posible y se ha hecho.

KDE

El famoso escritorio de Linux también usa Qt, así como todas las aplicaciones que corren sobre este (claro que Qt, y GTK conviven en muchas instalaciones de Linux).


En el 98 algunos representantes de KDE junto con Trolltech(empresa que crea Qt) llegaron a un acuerdo de donde salió la licencia QPL con la cual de dice que los desarrolladores de KDE siempre tendrán una versión libre de Qt.

COMPRA NOKIA

Hace tan solo 2 años, cuando yo empezaba a conocer esta herramienta Trolltech fue comprado por Nokia. Muchos rumores alrededor de la compra, pero hasta ahora los resultados han sido fantásticos.

Muchos Releases, una mayor diversificación de la plataforma, y por ultimo un cambio de su licencia GPL a LGPL.

Ahora Qt es totalmente compatible con Symbian, y Symbian 3, utiliza Qt para su UI, es decir Symbian pasó a ser el “Linux + KDE” móvil.

Y ni que decir de MAEMO, futuro MEEGO, que va a ser el OS para netbooks, corriendo Qt como framework para su UI.

Una aplicación con mínimas consideraciones podrá correr en toda esta gama de equipos. Facilitando el “deploy”

PARADIGMA SEÑALES SLOTS

Qt maneja el paradigma de señales y slots, también puede ser visto como eventos, o como FBP (Flow based programming).

La forma más sencilla de ilustrar esto es mirando un software llamado simulink. En el que se conectan cajas y cajas

Meta ObjeCt
Los moc serán archivos con los que uno se encuentra al trabajar con Qt, y se deben a que C++ no trabaja con este paradigma de SIGNAL SLOT.
Qt genera estos archivos MOC para suplir esta ausencia en C++ por lo cual aunque los vemos bastante, jamás tenemos que tocarlos.
En el libro Foundations of Qt Development, se encuentran estas dos gráficas que comparan el proceso de compilación normal y cuando se incluye Qt, y los MOC

QMAKE

Finalmente QMake es la herramienta que se utiliza para compilar un código que ha utilizado Qt.

Vale la pena aclarar que QMake no es un compilador (lo cual contradeciría lo que dije arriba), QMAKE es una herramienta para generar los MOC, y  MakeFiles correspondientes para cada sistema operativo.

QMake sigue unas reglas dadas en un archivo de configuración, un .pro, el cual no es difícil de generar, de hecho QTCreator, y QDevelop lo hacen.

Un ejemplo de cómo luciría un .pro (tomado de Tutorial oficial de QMake)

En la imagen se aprecia los condicionales para los distintos sistemas operativos.

Entre muchas otras opciones QMake está en la capacidad de generar su propio .pro, mediante la opción qmake –project

Post escrito especialmente para @cafeguaguau por:

Daniel Fernando Jiménez Torres
CTO
Dato Technology
twitter @dfjimenezt

Dato Technology provee soluciones integrales hardware-software de alta tecnología  enfocadas en el entretenimiento e interactividad con el usuario.

  • http://enmediodelruido.blogspot.com/ Mauricio Duque Arrubla

    Me gustan estos textos más profundos junto a los cortos de noticias para leer rápido