Leo (computadora)
(leer más)
Qt (pronunciado "cute") es un software multiplataforma para crear interfaces gráficas de usuario, así como aplicaciones multiplataforma que se ejecutan en varias plataformas de software y hardware, como Linux., Windows, macOS, Android o sistemas integrados con poco o ningún cambio en el código base subyacente sin dejar de ser una aplicación nativa con capacidades y velocidad nativas.
Qt está siendo desarrollado actualmente por The Qt Company, una empresa que cotiza en bolsa, y Qt Project bajo el gobierno de código abierto, que involucra a desarrolladores individuales y organizaciones que trabajan para avanzar en Qt. Qt está disponible bajo licencias comerciales y licencias de código abierto GPL 2.0, GPL 3.0 y LGPL 3.0.
Qt se utiliza para desarrollar interfaces gráficas de usuario (GUI) y aplicaciones multiplataforma que se ejecutan en las principales plataformas de escritorio y en la mayoría de las plataformas móviles o integradas. La mayoría de los programas GUI creados con Qt tienen una interfaz de apariencia nativa, en cuyo caso Qt se clasifica como un kit de herramientas de widgets. También se pueden desarrollar programas que no sean GUI, como herramientas de línea de comandos y consolas para servidores. Un ejemplo de un programa no GUI que usa Qt es el marco web Cutelyst.
Qt es compatible con varios compiladores, incluido el compilador GCC C++, la suite Visual Studio, PHP a través de una extensión para PHP5 y tiene un amplio soporte de internacionalización. Qt también proporciona Qt Quick, que incluye un lenguaje de secuencias de comandos declarativo llamado QML que permite usar JavaScript para proporcionar la lógica. Con Qt Quick, se hizo posible el desarrollo rápido de aplicaciones para dispositivos móviles, mientras que la lógica también se puede escribir con código nativo para lograr el mejor rendimiento posible.
Otras características incluyen acceso a base de datos SQL, análisis XML, análisis JSON, administración de subprocesos y soporte de red.
La última versión de Qt es 6.4.
También se siguen admitiendo, para usuarios comerciales, 5.15 LTS, lanzado el 26 de mayo de 2020, y 6.2 LTS, lanzado el 30 de septiembre de 2021. Las versiones de soporte a largo plazo (LTS) generalmente tienen soporte durante tres años, con una licencia comercial., mientras que el soporte de 5.15 se amplió a cinco años, por lo que es compatible durante más tiempo o hasta el 26 de mayo de 2025. Además, el proyecto KDE proporciona soporte no oficial para, al menos, Qt 5.15, es decir, no solo para usuarios comerciales.
En 2017, Qt Company estimó una comunidad de alrededor de 1 millón de desarrolladores en todo el mundo en más de 70 industrias.
Interfaces gráficas de usuario y entornos de escritorio que utilizan Qt/QML como conjunto de herramientas de widgets:
Muchos software multiplataforma patentados o de código abierto notables utilizan Qt o QML:
Qt es utilizado por una amplia gama de empresas y organizaciones como
Qt se basa en estos conceptos clave:
A partir de Qt 4.0, el marco se dividió en módulos individuales. Con Qt 5.0, la arquitectura se modularizó aún más. Qt ahora se divide en módulos essential y add-on.
Módulo | Descripción |
---|---|
Qt Core | El único requisito Módulo Qt, que contiene clases utilizadas por otros módulos, incluyendo el sistema meta-objeto, concurrencia e rosca, contenedores, sistema de eventos, plugins e instalaciones I/O. |
Qt GUI | El módulo central GUI. En Qt 5 este módulo ahora depende de OpenGL, pero ya no contiene ninguna clase de widget. |
Qt Widgets | Contiene clases para aplicaciones clásicas basadas en widget GUI y las clases QSceneGraph. Fue separado de QtGui en Qt 5. |
Qt QML | Módulo para lenguajes QML y JavaScript. |
Qt Quick | El módulo de aplicación GUI escrito con QML2. |
Controles rápidos Qt | Widget como controles para Qt Quick destinados principalmente a aplicaciones de escritorio. |
Qt Quick Layouts | Diseños para organizar objetos en Qt Quick. |
Qt Network | Capa de abstracción de red. Complete with support for TCP, UDP, HTTP, TLS, SSL (in Qt 4) and SPDY (since Qt 5.3). |
Qt Multimedia | Clases para funciones de audio, vídeo, radio y cámara. |
Qt Multimedia Widgets | Los widgets de Qt Multimedia. |
Qt SQL | Contiene clases para la integración de bases de datos usando SQL. |
Qt WebEngine | Un nuevo conjunto de API Qt Widget y QML Webview basado en Chromium. |
Qt Test | Clases para pruebas de unidad Aplicaciones Qt y bibliotecas. |
Módulo | Descripción |
---|---|
Qt activo | Clases para aplicaciones que utilizan ActiveX. |
Qt Charts | Proporciona funcionalidad y widgets para trazar gráficos de muchos tipos |
Qt Bluetooth | Clases que acceden al hardware Bluetooth. |
Qt D-Bus | Clases para PCI utilizando el protocolo D-Bus. |
Qt NFC | Clases que acceden al hardware NFC. Sólo se apoyó oficialmente en hardware BlackBerry hasta ahora (o N9 en el puerto de MeeGo). |
Qt OpenGL | Módulo Legacy que contiene las clases OpenGL de Qt 4. En Qt 5 la funcionalidad similar en Qt GUI se recomienda. |
Qt Location | Clases para acceder a los servicios de GPS y otros servicios de localización y para la asignación y navegación. Sepárese del módulo de movilidad Qt 4 Qt Location. Admitido en Android, BlackBerry, iOS, Linux (utilizando GeoClue), Windows y Sailfish OS. |
Qt Quick 3D | Clases para renderizar modelos 3D, videojuegos, simulaciones e interfaces de usuario 3D, con un Qt QML API, en un gráfico mixto de escena 2D y 3D. |
Qt Script | Módulo Legacy para scripting Aplicación Qt usando ECMAScript/JavaScript. En Qt 5, usando clases similares en Qt QML se recomienda. |
Sensores de Qt | Clases para acceder a varios sensores de hardware móvil. Solía ser parte de Qt Mobile en Qt 4. Admitido en Android, BlackBerry, iOS, WinRT, Mer y Linux. |
Qt Puerto de serie | Clases para el acceso al hardware y puertos serie virtuales. Soportado en Windows, Linux y macOS. |
Qt WebChannel | Proporciona acceso a objetos Qt a HTML/Js sobre WebSockets. |
Qt WebKit | Aplicación WebKit de Qt y API. |
Qt WebKit Widgets | El widget API para Qt WebKit |
Qt WebSockets | Proporciona una implementación WebSocket. |
Qt XML | Módulo Legacy que contiene clases para API XML de estilo SAX y DOM. Reemplazado por las clases de QXmlStreamReader y QXmlStreamWriter Qt Core. |
Pautas XML de Qt | Soporte para validación de esquemas XPath, XQuery, XSLT y XML. |
Hay cuatro ediciones de Qt disponibles: Community, Indie Mobile, Professional y Enterprise. La versión Community está bajo las licencias de código abierto, mientras que las versiones Indie Mobile, Professional y Enterprise, que contienen funcionalidades y bibliotecas adicionales, p. Enterprise Controls se vende comercialmente por The Qt Company.
Qt funciona en muchas plataformas diferentes; los siguientes son compatibles oficialmente:
Plataforma | Descripción |
---|---|
Linux/Unix | |
X11 | Qt for X Window System (Linux); FreeBSD, NetBSD, OpenBSD y Dragon Fly BSD tiene apoyo comunitario. |
Wayland | Las aplicaciones Qt pueden cambiar entre backends gráficos como X y Wayland en tiempo de carga con la opción de línea de comandos -platform. Esto permite una transición perfecta de aplicaciones Qt de X11 a Wayland. SailfishOS utiliza Wayland sólo ya que no tiene X11. |
Android | Qt para Android (anteriormente conocido como Necessitas). |
Linux incrustado | Qt para plataformas incrustadas: asistente digital personal, teléfono inteligente, etc. Existe como plataformas múltiples dependiendo de la tecnología de visualización. DirectFB, LinuxFB y EGLFS (EpL Full Screen). |
Plataformas de Microsoft | |
Windows | Qt para Microsoft Windows 7, 8 y 10 |
Windows RT | Soporte para aplicaciones móviles Windows 10 basadas en WinRT y Windows 10 IoT |
Plataformas de Apple | |
macOS | Qt for Apple macOS; admite aplicaciones en Cocoa |
iOS | Qt para plataformas iOS (iPhone, iPad) |
Otras plataformas incrustadas | |
Integridad | Qt for Integrity |
QNX | Qt para QNX |
VxWorks | Qt para VxWorks. Solo disponible bajo licencia de propiedad (comercial). Qt 5.5. |
Después de que Nokia abrió el código fuente de Qt a la comunidad en Gitorious, aparecieron varios puertos. También hay algunos puertos de Qt que pueden estar disponibles, pero ya no son compatibles. Estas plataformas se enumeran en la Lista de plataformas admitidas por Qt. Consulte también allí el soporte actual de la comunidad para otras plataformas menos conocidas, como SailfishOS.
Qt está disponible bajo las siguientes licencias de software gratuito: GPL 2.0, GPL 3.0, LGPL 3.0 y LGPL 2.1 (con la excepción especial de Qt). Tenga en cuenta que algunos módulos solo están disponibles bajo una licencia GPL, lo que significa que las aplicaciones que se vinculan a estos módulos deben cumplir con esa licencia.
Además, Qt siempre ha estado disponible bajo una licencia comercial, como la Licencia Comercial Qt, que permite desarrollar aplicaciones propietarias sin restricciones de licencia.
Qt viene con su propio conjunto de herramientas para facilitar el desarrollo multiplataforma, que de otro modo puede ser engorroso debido a los diferentes conjuntos de herramientas de desarrollo.
Qt Creator es un IDE multiplataforma para C++ y QML. La funcionalidad de diseño/diseño de la GUI de Qt Designer está integrada en el IDE, aunque Qt Designer aún se puede iniciar como una herramienta independiente.
Además de Qt Creator, Qt proporciona qmake, una herramienta de generación de secuencias de comandos de compilación multiplataforma que automatiza la generación de Makefiles para proyectos de desarrollo en diferentes plataformas. Hay otras herramientas disponibles en Qt, incluido el generador de interfaz Qt Designer y el navegador de ayuda Qt Assistant (ambos integrados en Qt Creator), la herramienta de traducción Qt Linguist, uic (compilador de interfaz de usuario) y moc (compilador de metaobjetos).).
En el verano de 1990, Haavard Nord y Eirik Chambe-Eng (los desarrolladores originales de Qt y el director ejecutivo y presidente, respectivamente, de Trolltech) estaban trabajando juntos en una aplicación de base de datos para imágenes de ultrasonido escrita en C++ y ejecutada en Mac. SO, Unix y Microsoft Windows. Comenzaron el desarrollo de "Qt" en 1991, tres años antes de que la empresa se incorporara como Quasar Technologies, luego cambió el nombre a Troll Tech y luego a Trolltech.
El conjunto de herramientas se llamó Qt porque la letra Q se veía atractiva en el tipo de letra Emacs de Haavard, y "t" se inspiró en Xt, el kit de herramientas X.
Las dos primeras versiones de Qt tenían solo dos sabores: Qt/X11 para Unix y Qt/Windows para Windows.
El 20 de mayo de 1995, Troll Tech lanzó públicamente Qt 0.90 para X11/Linux con el código fuente bajo la Licencia Qt Free Edition. La Free Software Foundation consideró que esta licencia no cumplía con la definición de software libre porque, si bien la fuente estaba disponible, no permitía la redistribución de versiones modificadas. Trolltech usó esta licencia hasta la versión 1.45. La controversia estalló alrededor de 1998 cuando quedó claro que K Desktop Environment se convertiría en uno de los principales entornos de escritorio para Linux. Como estaba basado en Qt, a muchas personas en el movimiento del software libre les preocupaba que una pieza esencial de uno de sus principales sistemas operativos fuera propietaria.
La plataforma Windows solo estaba disponible bajo una licencia propietaria, lo que significaba que las aplicaciones gratuitas o de código abierto escritas en Qt para X11 no podían migrarse a Windows sin comprar la edición propietaria.
Con el lanzamiento de la versión 2.0 del kit de herramientas a mediados de 1999, la licencia se cambió a Q Public License (QPL), una licencia de software libre, pero que la Free Software Foundation considera incompatible con la GPL. Se buscaron compromisos entre KDE y Trolltech por los cuales Qt no podría caer bajo una licencia más restrictiva que la QPL, incluso si Trolltech fuera comprado o quebrara. Esto condujo a la creación de la fundación KDE Free Qt, que garantiza que Qt caería bajo una licencia de estilo BSD en caso de que no se lanzara una versión libre/de código abierto de Qt durante 12 meses.
En 2000, se lanzó Qt/X11 2.2 bajo la licencia GPL v2, lo que puso fin a toda controversia sobre la compatibilidad con la licencia GPL.
A fines de 2001, Trolltech lanzó Qt 3.0, que agregó soporte para Mac OS X (ahora conocido como macOS). El soporte para Mac OS X estuvo disponible solo en la licencia propietaria hasta junio de 2003, cuando Trolltech lanzó Qt 3.2 con soporte para Mac OS X disponible bajo la GPL.
En 2002, los miembros del proyecto KDE en Cygwin comenzaron a migrar el código base Qt/X11 con licencia GPL a Windows. Esto fue en respuesta a la negativa de Trolltech a licenciar Qt/Windows bajo la GPL con el argumento de que Windows no era una plataforma de software libre/de código abierto. El proyecto logró un éxito razonable aunque nunca alcanzó la calidad de producción.
Esto se resolvió cuando Trolltech lanzó Qt 4.0 también para Windows bajo la GPL en junio de 2005. Qt 4 admitía el mismo conjunto de plataformas en las ediciones de software libre/código abierto que en la edición propietaria, por lo que es posible, con Qt 4.0 y versiones posteriores, para crear aplicaciones gratuitas/de código abierto con licencia GPL utilizando Qt en todas las plataformas compatibles. La GPL v3 con una excepción especial se agregó más tarde como una opción de licencia adicional. La excepción de GPL permite que la aplicación final se licencie bajo varias licencias de software libre/código abierto incompatibles con GPL, como la Licencia pública de Mozilla 1.1.
Nokia adquirió Trolltech ASA el 17 de junio de 2008 y cambió el nombre primero a Qt Software y luego a Qt Development Frameworks.
Nokia se centró en convertir Qt en la principal plataforma de desarrollo para sus dispositivos, incluido un puerto para la plataforma Symbian S60. La versión 1.0 de Nokia Qt SDK se lanzó el 23 de junio de 2010. El código fuente estuvo disponible en Gitorious, un repositorio de código fuente de git orientado a la comunidad, con el objetivo de crear una comunidad más amplia que use y mejore Qt.
El 14 de enero de 2009, la versión 4.5 de Qt agregó otra opción, la LGPL, para hacer que Qt sea más atractivo tanto para proyectos de código abierto sin GPL como para aplicaciones cerradas.
En febrero de 2011, Nokia anunció su decisión de abandonar las tecnologías Symbian y basar sus futuros teléfonos inteligentes en la plataforma Windows Phone (y desde entonces también se eliminó la compatibilidad con esa plataforma). Un mes después, Nokia anunció la venta de licencias comerciales y servicios profesionales de Qt a Digia, con el objetivo inmediato de llevar el soporte de Qt a las plataformas Android, iOS y Windows 8, y continuar enfocándose en el desarrollo integrado y de escritorio, aunque Nokia seguiría siendo la principal fuerza de desarrollo detrás del marco en ese momento.
En marzo de 2011, Nokia vendió la parte de licencias comerciales de Qt a Digia, creando Qt Commercial. En agosto de 2012, Digia anunció que adquiriría Qt de Nokia. El equipo de Qt en Digia comenzó su trabajo en septiembre de 2012. Lanzaron Qt 5.0 en un mes y versiones más nuevas cada seis meses con nuevas funciones y plataformas compatibles adicionales.
En septiembre de 2014, Digia transfirió el negocio y los derechos de autor de Qt a su subsidiaria de propiedad absoluta, The Qt Company, que posee 25 marcas relacionadas con Qt. En mayo de 2016, Digia y Qt se fusionaron por completo en dos empresas independientes.
Qt 5 se lanzó oficialmente el 19 de diciembre de 2012. Esta nueva versión marcó un cambio importante en la plataforma, con gráficos acelerados por hardware, QML y JavaScript jugando un papel importante. Los QWidgets tradicionales de solo C++ continuaron siendo compatibles, pero no se beneficiaron de las mejoras de rendimiento disponibles a través de la nueva arquitectura. Qt 5 trae mejoras significativas en la velocidad y facilidad de desarrollo de interfaces de usuario.
El desarrollo del marco de trabajo de Qt 5 pasó a la gobernanza abierta en qt-project.org, lo que hizo posible que los desarrolladores externos a Digia enviaran parches para su revisión.
Además de The Qt Company, muchas organizaciones e individuos que usan Qt como su plataforma de desarrollo participan en el desarrollo abierto de Qt a través del Proyecto Qt.
Uno de estos colaboradores de Qt es Klarälvdalens Datakonsult AB, una empresa sueca de consultoría de Qt. KDAB participa en muchas áreas, incluido el mantenimiento de varios componentes.
Junto con RIM/BlackBerry, KDAB mantiene los puertos QNX y BlackBerry 10 de Qt.
Otro participante es Intel, que contribuye, por ejemplo, con el soporte de Wayland. AudioCodes mantiene la compatibilidad con IBM ClearCase en Qt Creator.
Como gran usuario de Qt, el proyecto KDE envía muchos parches y características de su biblioteca de desarrolladores KDE Frameworks a Qt.
(leer más)
(leer más)
(leer más)