Home Wiki > Qt Toolkit
Sign up | Login

Qt Toolkit

tagline: De openSUSE

Contenido

Sobre

El Toolkit QT es un toolkit de widgets gráficos para el desarrollo de plataforma cruzada. Qt es usado de forma más notable en el Entorno de Escritorio K (KDE). Es producido por una compañía noruega: Trolltech, anteriormente "Quasar Technologies". Trolltech incide en que la pronunciación de Qt es como en "cute" (en inglés).

Qt usa una versión extendida del lenguaje de programación C++, pero existen "bindings" para Python, Ruby, C, y Perl. Corre sobre las plataformas "mayoritarias", y tiene un soporte extensivo. Las características "no gráficas" incluyen acceso a bases de datos SQL, parseado XML, y una API unificada, de plataforma cruzada, para el manejo de ficheros.

Variedades

Qt es liberado por Trolltech para las siguientes plataformas:

  • Qt/X11 — Qt para X Window System
  • Qt/Mac — Qt para Apple Mac OS X
  • Qt/Windows — Qt para Microsoft Windows
  • Qt/Embedded — Qt para plataformas embebidas (PDA, Smartphone, ...)

Hay cuatro ediciones disponibles de Qt en cada una de esas plataformas, llamadas:

  • Qt Console — edición para desarrollo no gráfico.
  • Qt Desktop Light — una edicion de entrada al nivel de GUI (gráfico), sin soporte de red ni de bases de datos.
  • Qt Desktop — edición completa.
  • Qt Open Source Edition — edición completa, para desarrollos de código abierto (software libre).

Las tres primeras ediciones son propietarias, y liberadas bajo una licencia comercial, mientras que la edición Open Source, se encuentra bajo la licencia GPL y adicionalmente bajo la Licencia Pública Q (QPL) para la versión Qt/X11.

En el caso de la plataforma X11, la QPL permite licenciar bajo varias licencias "open source", como la LGPL o la Licencia Artística.Para Windows y MacOs X, la única licencia disponibe será la GPL, por lo que las aplicaciones desarrolladas con el toolkit deben liberarse bajo la GPL también.

Todas las ediciones soportan un amplio espectro de compiladores, incluyendo el GCC, compilador de C++, y en el caso de la edición comercial de Qt bajo Windows, la suite Visual Studio[1].

Hay un proyecto para portar la versión "open source" de Qt/X11 a Windows, junto con KDE. El proyecto se comenzó para Qt3, para proveer de versiones de Qt en windows apropiadas para programas de código abierto.:

  • Qt/Windows Free Edition — una versión libre de Qt liberada por el proyecto de KDE bajo Cygwin. Esta versión está basada íntegramente en el código fuente de Qt/X11 y se encuentra bajo una licencia GPL.

La liberación de Qt4 bajo la GPL para Unix, MacOS y Windows hacen que el proyecto sea menos relevante.

Actualidad

Trolltech liberó Qt4 el 28 de Junio de 2005, e introdujo cinco nuevas tecnologías en su framework:

  • Tulip Un nuevo set de clases de plantilla.
  • Interview Un modelo/vista de arquitectura para vistas de ítems.
  • Arthur Un framework de pintura en 2D.
  • Scribe Un renderizador de texto Unicode con una API pública para la disposición de texto a bajo nivel.
  • MainWindow A modern action-based main window, toolbar, menu, and docking architecture.

Qt 4 está licenciado dualmente bajo la licencia GPL y licencias propietarias en todas las plataformas soportadas, incluyendo Windows (mientras que Qt/Windows 3.3 está liberada únicamente bajo una licencia propietaria).

Historia

Haavard Nord y Eirik Chambe-Eng (los desarrolladores originales de Qt y CEO y Presidente de Trolltech respectivamente) comenzaron el desarrollo de Qt en 1991, tres años después la compañía era incorporada a Quasar Technologies, cambiando el nombre a Troll Tech y después a Trolltech.

El toolkit se llamó Qt porque la letra Q era bonita en las fuentes de Emacs de Haavard y la T se inspiró en Xt, el toolkit X.

La controversia surgió sobre 1998, cuando se vió claro que KDE llegaría a ser uno de los entornos de escritorio líderes para Linux. Como KDE estaba basado en Qt, mucha gente de los movimientos del software libre y de código abierto estaban preocupados de que una pieza esencial en uno de sus principales sistemas operativos estuviera bajo un control "comercial".

Esto dio lugar a dos esfuerzos: el toolkit Harmony, que buscaba duplicar el toolkit Qt bajo una licencia libre, y el escritorio GNOME, que estaba pensado para sustituir KDE por completo. El escritorio GNOME usa el toolkit GTK+, que fue escrito para el GIMP, y que usa principalmente el lenguaje C.

Hasta la versión 1.45, Qt usaba la licencia FreeQt— que no era ni open-source ni libre, porque mientras la fuente estaba disponible, no se permitía la redistribución de versiones modificadas. Con la liberación de la versión 2.0 del toolkit, la licencia fue cambiada a la Q Public License (QPL), una licencia libre, pero vista por la Free Software Foundation como incompatible con la GPL. Se buscó un compromiso entre KDE y Trolltech para mantener Qt fuera de licencias más restrictivas que la QPL, aunque Trolltech fuera comprada o se declarase en bancarrota. Esto llevó a la creación de la KDE Free Qt foundation, que garantiza que Qt se licenciará con una licencia BSD en estos casos extremos.

Las primeras versiones de Qt tenían dos sabores: Qt/X11 para Unix y Qt/Windows para la plataforma Windows. La versión para Windows sólo se encontraba disponible bajo una licencia comercial. Al final de 2001, Trolltech liberó Qt 3.0, que añade soporte para la plataforma Mac OS X. Para esta última estaba disponible sólo la licencia comercial, hasta Junio de 2003, cuando Trolltech liberó la versión 3.2 con soporte para Mac OS X disponible bajo la licencia GPL. Al llegar Junio de 2005 se añade la plataforma de Windows a la edición Open Source. Qt4 soporta, por tanto, el mismo conjunto de plataformas en las ediciones comerciales como en las Open Source.

Diseño

La innovación de Qt en su primera liberación se apoyó en unos pocos conceptos claves.

Abstracción completa de la Interfaz Gráfica de Usuario (GUI)

Qt usa su propio motor de dibujo y controles. Emula la apariencia de las diferentes plataformas en las que se ejecute. Esto hace que el trabajo de hacer "ports" sea más fácil, porque sólo una pequeña cantidad de las clases de Qt dependen realmente de la plataforma "objetivo". El "defecto" es que Qt tiene que emular precisamente la apariencia de diferentes plataformas. Este defecto ya no se aplica, ya que en las últimas versiones de Qt, se usa la API de estilos nativos de las diferentes plataformas para dibujar los controles de Qt.

Otros toolkits gráficos portables han hecho diferentes decisiones de diseño, como wxWidgets, MFC (sólo Microsoft), y la basada en Java SWT[2], que emplea el toolkit de la plataforma objetivo para su implementación.

Compilador de "meta objetos"

Conocido como moc (meta object compiler), esta herramienta es una de las que se deben ejecutar sobre las fuentes de un programa Qt antes de compilarlo. La herramienta generará "Meta Información", sobre las clases usadas en los programas. Esta meta información es usada por Qt para proveer características de programación que no se encuentran disponibles en C++: introspección y un sistema de señales/slots.

El uso de esta herramienta adicional ha sido criticado por parte de la comunidad de programadores en C++, ya que consideran que la programación en Qt está haciendo una farsa de C++. En particular, la elección de una implementación basada en macros ha sido criticada por su ausencia de seguridad de tipos, creando un espacio de nombres "contaminado". Esto es visto por Trolltech como una compensación para proveer introspección y slots o señales generados dinámicamente. Además, cuando Qt 1.x fue liberado, no se podía confiar en la consistencia entre implementaciones de compilación de plantillas.

Ver También

GIMP Toolkit

Enlaces externos