About Qt/es
¿Qué es Qt?
Qt es un framework de desarrollo de aplicaciones multiplataforma para desktop, embebido y móvil. Las plataformas soportadas incluyen Linux, OS X, Windows, VxWorks, QNX, Android, iOS, BlackBerry, Sailfish OS y otros.
Qt no es un lenguaje de programación por sí solo. Es un framework escrito en C++. Un preprocesador, MOC (Meta-Object Compiler), se utiliza para extender el lenguaje c++ con funciones como Signals y Slots. Antes del paso de compilación, MOC analiza los archivos de origen escritos en Qt-extended C++ y genera código fuente C++ estándar compatibles de ellos. Por lo tanto, el propio framework y las aplicaciones/librerías que lo utilizan pueden ser compilados por cualquier compilador compatible con C++ estándar como Clang, GCC, ICC, MinGW y MSVC.
La Compañía Qt y el Proyecto Qt
El desarrollo de Qt inició en 1990 por los programadores noruegos Eirik Chambe-Eng y Haavard Nord. Su compañía, Trolltech, vendió licencias QT y proporcionó apoyo, pasó por varias adquisiciones a lo largo de los años. Hoy la ex Trolltech se llama The Qt Company y es una subsidiaria de Digia Plc., Finlandia. Aunque Qt Company es el principal impulsor detrás de Qt, Qt ahora es desarrollado por una alianza más grande conocida como: El proyecto Qt. Se compone de muchas empresas e individuos en todo el mundo y sigue un modelo de gobernanza meritocrático.
Todos los que quieran, individuos y empresas, pueden unirse al esfuerzo. Hay muchas maneras en las que uno puede contribuir al Proyecto Qt. Escribiendo código o documentación para el framework, reportando bugs, ayudando a otros usuarios en el foro o mantenimiento de páginas en esta wiki (ver también http://qt.io/contribute/).
Licencia
Qt está disponible bajo varias licencias: La Compañia Qt vende licencias comerciales, pero Qt también está disponible como software libre bajo varias versiones de la GPL y LGPL (Licensing FAQ).
Sistema de construcción
Aunque cualquier sistema de construcción se puede utilizar con Qt, Qt trae su propio qmake. Es una interfaz multiplataforma para sistemas de creación de plataformas nativas, como GNU Make, Visual Studio y Xcode.
CMake es también una alternativa popular para construir proyectos Qt, el soporte Qt 4 se ha integrado años atrás y Qt 5 proporciona soporte temprano. Un nuevo jugador entró en el juego recientemente: The Qt Build Suite a.k.a Qbs. Qbs es un sistema de construcción basado en QML que también proporciona soporte para Javascript. Este sistema de construcción no sólo proporciona la capacidad de construcción, sino también el empaquetado como cmake.
IDE
Qt viene con su propio entorno de desarrollo integrado (IDE), llamado Qt Creator. Se ejecuta en Linux, OS X y Windows y ofrece finalización de código inteligente, resaltado de sintaxis, un sistema de ayuda integrado, depurador y la integración de profiler y también la integración de todos los principales sistemas de control de versiones (por ejemplo, git, Bazaar). Además de los desarrolladores de Qt Creator en Windows, también puede utilizar el complemento de Visual Studio de Qt. También se pueden utilizar otros IDE (por ejemplo, KDevelop en KDE). Pero, por supuesto, no es obligatorio en absoluto utilizar ningún IDE en absoluto.
Internacionalización y localización
Qt cuenta con un excelente soporte para la internacionalización (i18n) y localización (l10n). La herramienta Qt Linguist y sus compañeros lupdate, lrelease y lconvert facilitan la traducción de aplicaciones a idiomas locales. Qt soporta la mayoría de los idiomas y sistemas de escritura que están en uso hoy en día. Para obtener una lista completa, consulte las páginas de manual correspondientes.
Widgets
Con Qt, las GUI se pueden escribir directamente en C++ usando su módulo Widgets. Qt también viene con una herramienta gráfica interactiva llamada Qt Designer que funciona como un generador de código para las GUI basadas en Widgets. Qt Designer se puede usar independiente pero también está integrado en Qt Creator.
QtQuick
Otra forma de escribir GUIs con Qt es usar el módulo QtQuick. Las GUI que usan QtQuick están escritas en QML. QML es un lenguaje declarativo de descripción de objetos que integra JavaScript para la programación de procedimientos. QtQuick proporciona los módulos necesarios para el desarrollo de GUI con QML. Es posible escribir aplicaciones completas en QML solamente, pero usualmente sólo la GUI está escrita en QML y el backend de la aplicación se implementa en C++ (vea Integración de QML y C++). Además, Qt Creator incluye un diseñador y profiler QtQuick de GUI integrado.
Más módulos
Qt es mucho más que un conjunto de herramientas GUI. Proporciona módulos para el desarrollo multiplataforma en las áreas de redes, bases de datos, OpenGL, tecnologías web, sensores, protocolos de comunicaciones (Bluetooth, puertos serie, NFC), procesamiento XML y JSON, impresión, generación de PDF y mucho más. Para obtener una lista completa de los módulos Qt oficiales, consulte la página de Todos los módulos en la documentación de Qt. Además, ver Inqlude.org para una lista de módulos de terceros basados en Qt, para su uso en proyectos Qt.
Vinculación con otros lenguajes
Aunque las aplicaciones que usan Qt suelen estar escritas en C++ y QML, existen bindings a otros lenguajes. Estos no son parte de Qt pero son proporcionados por varios terceros. Riverbank Computing, por ejemplo, ofrece bindings para Python comercial y de software libre (PyQt). Para más bindings de lenguajes, consulte Categoría: LanguageBindings.