Qt
La versión actual de la página aún no ha sido revisada por colaboradores experimentados y puede diferir significativamente de la
versión revisada el 22 de mayo de 2018; las comprobaciones requieren
49 ediciones .
Qt |
---|
|
Instantánea de Qt Creator IDE versión 6.0.2 |
Tipo de |
estructura |
Autor |
Haavard Nord [d] [1]y Eirik Chambe-Eng [d] [1] |
Desarrolladores |
Trolltech (1991-2008)
Nokia (2008-2011)
Proyecto Qt (2011 - ?)
Digia (2012-2014)
La Compañía Qt (2014 - presente) |
Escrito en |
C++ [2] |
Sistema operativo |
GNU/Linux [3] , Microsoft Windows [3] , macOS [3] , BSD [3] , Android [3] e iOS [3] |
Primera edición |
20 de mayo de 1995 |
ultima versión |
|
Formatos de archivo legibles |
Qt Message [d] , Qt User Interface [d] , Qt Translation source file [d] , Qt Assistant Documentation Profile [d] , Qt Assistant Content File [d] , Qt Resource Collection [d] e Qt Jambi User Interface [d ] ] |
Formatos de archivo generados |
Qt Message [d] , Qt User Interface [d] , Qt Translation source file [d] , Qt Assistant Documentation Profile [d] , Qt Assistant Content File [d] , Qt Resource Collection [d] e Qt Jambi User Interface [d ] ] |
Licencia |
LGPL-3.0 [d] [3][5],GNU GPL 2[3]yGNU GPL 3[3] |
Sitio web |
qt.io _ |
Archivos multimedia en Wikimedia Commons |
Qt ( IPA [ ˈ k j u ː t ], pronunciado ( kyut ) como "lindo" [6] o informalmente QT (q-ti, ku-te, kyu-te) es un marco para desarrollar software multiplataforma en el Lenguaje de programación C ++ Hay bibliotecas para muchos lenguajes de programación que le permiten aprovechar Qt: Python - PyQt , PySide , Ruby - QtRuby [7] , Java - Qt Jambi [8] , PHP - PHP-Qt y otros.
Desde su creación en 1996, la biblioteca ha formado la base de muchos proyectos de software. Además, Qt es la base del popular entorno de escritorio KDE incluido con muchas distribuciones de Linux .
Funciones y composición
Qt le permite ejecutar software escrito con él en la mayoría de los sistemas operativos modernos simplemente compilando el programa para cada sistema sin cambiar el código fuente . Incluye todas las clases principales que pueden ser requeridas en el desarrollo de software de aplicación , desde elementos de interfaz gráfica hasta clases para trabajar con la red , bases de datos y XML . Está completamente orientado a objetos, es extensible y admite técnicas de programación de componentes.
Una característica distintiva es el uso de un compilador de metaobjetos, un sistema de procesamiento de código fuente preliminar. La expansión de las capacidades se proporciona mediante un sistema de complementos que se pueden colocar directamente en el panel del editor visual. También existe la posibilidad de ampliar la funcionalidad familiar de los widgets asociados con colocarlos en la pantalla, mostrarlos y volver a dibujarlos cuando se cambia el tamaño de la ventana.
Viene con un entorno de desarrollo visual para la interfaz gráfica Qt Designer , que le permite crear diálogos y formularios en modo WYSIWYG . La distribución Qt incluye Qt Linguist , una utilidad gráfica que simplifica la localización y traducción de un programa a muchos idiomas; y Qt Assistant , un sistema de ayuda de Qt que facilita el trabajo con la documentación de la biblioteca y también le permite crear ayuda multiplataforma para el software desarrollado en base a Qt. A partir de la versión 4.5.0, se incluye el entorno de desarrollo de Qt Creator , que incluye un editor de código , ayuda, herramientas gráficas de Qt Designer y la capacidad de depurar aplicaciones. Qt Creator puede usar GCC o Microsoft VC++ como compilador y GDB como depurador. Para las versiones de Windows, la biblioteca viene con un compilador, un encabezado MinGW y archivos de objetos .
Hay versiones de la biblioteca para Microsoft Windows , sistemas de clase UNIX con gráficos X11 , Android , iOS , Mac OS X , Microsoft Windows CE , QNX [9] , sistemas Linux incorporados y la plataforma S60 . La migración a Windows Phone y Windows RT está en curso [10] [11] . La migración a Haiku y Tizen también está en marcha .
Durante algún tiempo, la biblioteca también se distribuyó en la versión Qt/Embedded, pensada para su uso en dispositivos integrados y móviles, pero desde mediados de la década de 2000 se separó en un producto independiente Qtopia .
A partir de la versión 4.5 Qt se distribuye bajo tres licencias:
- Qt Commercial : para desarrollar software con una licencia propietaria que permite la modificación de Qt sin revelar los cambios;
- GNU GPL : para desarrollo de código abierto distribuido bajo los términos de GNU GPL , así como para modificar Qt;
- GNU LGPL : para desarrollar software con una licencia propietaria.
El código fuente, que es el mismo para todas las opciones de licencia, está disponible gratuitamente en el repositorio de Git ubicado en Github . Además del propio código fuente de Qt, también hay repositorios de bibliotecas relacionadas desarrolladas por los autores de la biblioteca y la comunidad.
Antes de la versión 4.0.0, solo Qt/Mac, Qt/X11, Qt/Embedded se distribuían bajo una licencia gratuita, pero a partir de la versión 4.0.0 (lanzada a fines de junio de 2005 ), Qt Software fue "liberado" y Qt /ventanas. Al mismo tiempo, había versiones gratuitas de terceros de Qt/Windows anteriores a la 4.0.0, creadas sobre la base de Qt/X11.
Plataformas soportadas
Qt se ejecuta en una amplia variedad de plataformas; los siguientes son compatibles oficialmente:
Plataforma |
Descripción
|
Linux/Unix
|
X11
|
Qt para el administrador de ventanas X ( Linux , FreeBSD , HP-UX, Solaris, AIX, etc.). [12]
|
Wayland
|
Qt para Wayland . [13] Las aplicaciones Qt pueden cambiar entre backends gráficos como X y Wayland en el momento del arranque agregando la opción de línea de comando -platform. [14] [15] Esto permite que las aplicaciones migren silenciosamente de X11 a Wayland.
|
Sistemas Linux Embebidos
|
Qt para Sistemas Embebidos: PDAs , Smartphones , etc. [16] Existe en varias plataformas, dependiendo de la tecnología de renderizado. DirectFB , LinuxFB y EGLFS ( pantalla completa EGL ).
|
Androide
|
Qt para Android [17] anteriormente conocido como Necessitas. [Dieciocho]
|
plataformas de manzana
|
sistema operativo X
|
Qt para Apple OS X ; admite aplicaciones Cocoa . [19]
|
iOS
|
Qt para plataformas iOS ( iPhone , iPad ). [veinte]
|
Plataformas de Microsoft
|
ventanas
|
Qt para Microsoft Windows XP , Vista , 7 , [21] 8 y 10 . [22]
|
Windows CE
|
Qt para Windows CE 6 y Windows Embedded Compact 7 . [23]
|
Windows RT
|
Compatibilidad con aplicaciones basadas en WinRT para Windows 8 y Windows Phone 8 [24] . A partir de la versión 5.4: Windows Phone 8.1 . [25]
|
Otras plataformas integradas
|
Integridad
|
Qt para la integridad . [26]
|
QNX
|
Qt para QNX . [27]
|
VxWorks
|
Qt para VxWorks . [28]
|
Después de que Nokia lanzó el código fuente de Qt a la comunidad en Gitorious , aparecieron varios puertos. También hay algunos puertos que pueden estar disponibles pero que ya no son compatibles.
Componentes
La biblioteca se divide en varios módulos:
- QtCore: clases básicas de biblioteca utilizadas por otros módulos;
- QtGui: componentes de la GUI;
- QtWidgets: contiene clases para aplicaciones clásicas basadas en widgets, el módulo está separado de QtGui en Qt 5;
- Qt QML: un módulo para compatibilidad con QML ;
- QtNetwork es un conjunto de clases para la programación de redes. La compatibilidad con varios protocolos de alto nivel puede variar de una versión a otra. La versión 4.2.x contiene clases para trabajar con protocolos FTP y HTTP . Las clases como QTcpServer, QTcpSocket para TCP y QUdpSocket para UDP están diseñadas para funcionar con protocolos TCP/IP ;
- QtOpenGL: un conjunto de clases para trabajar con OpenGL ;
- QtSql es un conjunto de clases para trabajar con bases de datos usando SQL . Las clases principales de este módulo en la versión 4.2.x: QSqlDatabase: una clase para proporcionar una conexión a la base de datos, para trabajar con una base de datos específica, requiere un objeto heredado de la clase QSqlDriver: una clase abstracta que se implementa para un específico base de datos y puede requerir SDK de base de datos para la compilación. Por ejemplo, para crear un controlador para Firebird o InterBase DBMS , se requieren archivos .h y bibliotecas de enlaces estáticos, que se incluyen en el kit de distribución de este DBMS;
- Clases QtScript para trabajar con Qt Scripts ;
- QtSvg: clases para mostrar y trabajar con datos Gráficos vectoriales escalables ( SVG );
- Se admite el módulo QtXml para trabajar con modelos XML , SAX y DOM ;
- QtDesigner: clases para crear extensiones para sus propios widgets;
- QtUiTools: clases para procesar en una aplicación de formularios Qt Designer;
- QtAssistant - sistema de ayuda;
- Qt3Support: un módulo con las clases necesarias para la compatibilidad con la biblioteca Qt versión 3.x.x;
- QtTest: clases para admitir pruebas unitarias ;
- QtWebKit es un módulo de WebKit integrado en Qt y disponible a través de sus clases. (Obsoleto a partir de Qt 5.6);
- QtWebEngine es un módulo de Chromium integrado en Qt y disponible a través de sus clases. En QT 6.3.0, la versión de cromo es 94.0 [29]
- QtXmlPatterns: módulo para compatibilidad con XQuery 1.0 y XPath 2.0;
- Phonon : un módulo para admitir la reproducción y grabación de video y audio, tanto localmente como desde dispositivos y en la red (a partir de Qt 5, reemplazado por QtMultimedia);
- QtMultimedia: un módulo para admitir la reproducción y grabación de video y audio, tanto localmente como desde dispositivos ya través de la red;
- QtCLucene: módulo para soporte de búsqueda de texto completo , utilizado en la nueva versión de Assistant en Qt 4.4;
- ActiveQt es un módulo para trabajar con tecnologías ActiveX y COM para desarrolladores de Qt bajo Windows .
- QtDeclarative es un módulo que proporciona un marco declarativo para crear interfaces de usuario dinámicas y personalizadas.
También se implementa la tecnología WoC: widgets en lienzo, con la ayuda de la cual se implementa Plasma en KDE 4.1 Será posible usar los widgets de la biblioteca Qt directamente en los applets. Proporciona un diseño para widgets en QGraphicsView con escalabilidad y varios efectos gráficos.
La biblioteca utiliza su propio formato de proyecto, llamado archivo .pro, que contiene información sobre qué archivos se compilarán, qué rutas para buscar archivos de encabezado y mucha otra información. Posteriormente, utilizando la utilidad qmake , se utilizan para crear un archivo MAKE para la utilidad make del compilador. También es posible trabajar con la ayuda de integradores con Microsoft Visual Studio 2003/2005/2008/2010. La integración en Eclipse ha quedado obsoleta desde 2010.
Los desarrolladores de Java pueden usar Qt usando el marco Qt Jambi del mismo proveedor (oficialmente desde 2009, Qt Software ha detenido el desarrollo de este marco).
Documentación
Una de las ventajas del marco Qt es la documentación detallada [30] [31] acompañada de una gran cantidad de ejemplos. El código fuente de los ejemplos contiene comentarios y descripciones detalladas, lo que también facilita el aprendizaje de Qt.
Uso
Qt se utiliza en Autodesk Maya , [32] [33] , Skype , Telegram , VLC Media Player [34] , VirtualBox , Mathematica [35] , Agencia Espacial Europea [36] , DreamWorks [37] [38] , Google , HP [ 39] , Lucasfilm [40] , Panasonic [41] , Philips [42] , Samsung [43] , Siemens [44] , Volvo [45] y Walt Disney Animation Studios , CAO [46] , Google Earth , reproductor multimedia CherryPlayer .
Además, el entorno de escritorio KDE , la GUI del sistema operativo móvil MeeGo y Qt Creator , un entorno de desarrollo de Qt, se basan en Qt;
Sistema de metaobjetos
El sistema de metaobjetos es parte del marco central para admitir funciones de C++, como señales y ranuras para la comunicación en tiempo real entre objetos y las propiedades dinámicas del sistema.
El sistema de metaobjetos contiene: una clase QObject, una macro Q_OBJECTy una utilidad moc(compilador de metaobjetos). QObject es la clase base para todas las clases de Qt. La macro Q_OBJECTse utiliza para habilitar las funciones de metaobjetos en las clases y, en tiempo de compilación, actúa como un preprocesador que convierte las aplicaciones de macro en código fuente de C++.
Notas
- ↑ 1 2 https://my.safaribooksonline.com/0131872494/pref04
- ↑ El proyecto de código abierto qt en Open Hub: página de idiomas - 2006.
- ↑ 1 2 3 4 5 6 7 8 9 Directorio de software libre
- ↑ https://www.qt.io/blog/qt-6.4-released
- ↑ http://trolltech.com/company/newsroom/announcements/press.2008-01-18.1601592972
- ↑ Entrevista con Eirik Eng y Matthias Ettrich de Trolltech (inglés) (enlace no disponible) (12 de abril de 2004). Fecha de acceso: 16 de diciembre de 2011. Archivado desde el original el 3 de febrero de 2012.
- ↑ アーカイブされたコピー(enlace no disponible) . Consultado el 3 de agosto de 2007. Archivado desde el original el 9 de agosto de 2007. (indefinido)
- ↑ http://www.qtsoftware.com/products/qt/jambi/ (enlace descendente)
- ↑ Framework Qt para QNX . Archivado el 2 de noviembre de 2011 en Wayback Machine .
- ↑ Cambio I4352629a: soporte preliminar de Windows RT y Windows Phone . Archivado el 23 de octubre de 2013 en Wayback Machine .
- ↑ El puerto WinRT de Qt y su uso de C++/CX Archivado el 29 de octubre de 2013. (Inglés)
- ↑ Qt Wiki - Compatibilidad con Linux/X11 . Proyecto Qt (12 de agosto de 2011). Consultado el 21 de agosto de 2013. Archivado desde el original el 1 de mayo de 2015. (indefinido)
- ↑ Jorgen Lind. Faro multiproceso . Proyecto Qt (18 de marzo de 2011). Consultado el 21 de agosto de 2013. Archivado desde el original el 18 de junio de 2015. (indefinido)
- ↑ Primeros pasos con Lighthouse . Consultado el 25 de noviembre de 2011. Archivado desde el original el 27 de abril de 2015. (indefinido)
- ↑ Kristian Hogsberg. Agregue el complemento wayland lighthouse (enlace no disponible) (25 de enero de 2011). Archivado desde el original el 3 de febrero de 2016. (indefinido)
- ↑ Qt Wiki: compatibilidad con Linux integrado . Proyecto Qt (12 de agosto de 2011). Consultado el 10 de abril de 2015. Archivado desde el original el 1 de mayo de 2015. (indefinido)
- ↑ Nuevas características en Qt 5.1 - Compatibilidad con nuevas plataformas . Digia (3 de julio de 2013). Consultado el 10 de abril de 2015. Archivado desde el original el 23 de abril de 2015. (indefinido)
- ↑ Proyecto Necessitas (enlace descendente) . Consultado el 10 de abril de 2015. Archivado desde el original el 20 de febrero de 2016. (indefinido)
- ↑ Qt Wiki - Compatibilidad con OS X. Proyecto Qt (14 de agosto de 2011). Consultado el 21 de agosto de 2013. Archivado desde el original el 30 de abril de 2015. (indefinido)
- ↑ Plataformas compatibles . Consultado el 1 de febrero de 2014. Archivado desde el original el 26 de diciembre de 2014. (indefinido)
- ↑ Qt Wiki - Soporte para Windows . Proyecto Qt (11 de agosto de 2011). Consultado el 11 de agosto de 2013. Archivado desde el original el 30 de abril de 2015. (indefinido)
- ↑ Compatibilidad con Windows 10 en Qt . Qt Company (29 de abril de 2015). Fecha de acceso: 28 de enero de 2016. Archivado desde el original el 19 de enero de 2016. (indefinido)
- ↑ Bjoern Breitmeyer. El estado del soporte de WinCE en Qt5 . KDAB (21 de agosto de 2013). Consultado el 21 de agosto de 2013. Archivado desde el original el 18 de junio de 2015. (indefinido)
- ↑ Qt para WinRT . Proyecto QT . Consultado el 9 de septiembre de 2014. Archivado desde el original el 14 de julio de 2019. (indefinido)
- ↑ Nuevas características en Qt 5.4 - Qt Wiki . Fecha de acceso: 28 de febrero de 2016. Archivado desde el original el 29 de febrero de 2016. (indefinido)
- ↑ Páginas de productos Qt, Plataformas compatibles . Qt-Producto-Marco Qt . La Compañía Qt. Consultado el 21 de noviembre de 2014. Archivado desde el original el 20 de noviembre de 2014. (indefinido)
- ↑ Blog de Qt. Qt Commercial admite formalmente QNX | Qt Blog (enlace no disponible) . blog.qt.digia.com. Consultado el 19 de marzo de 2013. Archivado desde el original el 8 de octubre de 2013. (indefinido)
- ↑ Blog de Qt. comercial de Qt para VxWorks | Qt Blog (enlace no disponible) . blog.qt.digia.com. Consultado el 19 de marzo de 2013. Archivado desde el original el 19 de abril de 2014. (indefinido)
- ↑ QtWebEngine/ChromiumVersions-Qt Wiki . wiki.qt.io._ _ Recuperado: 24 Agosto 2022. (indefinido)
- ↑ Jono Bacon. Reseñas : Qt . Mactech (2004). Fecha de acceso: 16 de septiembre de 2010. Archivado desde el original el 23 de agosto de 2011.
- ↑ Documentación de referencia en línea (ing.) (enlace inaccesible) . nokia _ Fecha de acceso: 16 de septiembre de 2010. Archivado desde el original el 23 de agosto de 2011.
- ↑ Qt en Autodesk (enlace descendente) . Archivado desde el original el 3 de febrero de 2012. (indefinido)
- ↑ Qt en efectos visuales (enlace descendente) . Archivado desde el original el 3 de febrero de 2012. (indefinido)
- ↑ Qt en VideoLan Player (enlace descendente) . Archivado desde el original el 3 de febrero de 2012. (indefinido)
- ↑ Qt entregó una GUI C++ avanzada y multiplataforma para el equipo de desarrollo de Mathematica (enlace descendente) . Archivado desde el original el 3 de febrero de 2012. (indefinido)
- ↑ Qt en la Agencia Espacial Europea (enlace no disponible) . Archivado desde el original el 3 de febrero de 2012. (indefinido)
- ↑ Detrás de escena en DreamWorks Animation: Hacer las aplicaciones que hacen las películas (enlace descendente) . Archivado desde el original el 3 de febrero de 2012. (indefinido)
- ↑ Desafíos de diseño de sistema e interfaz de usuario para la herramienta de iluminación NxG (enlace descendente) . Archivado desde el original el 3 de febrero de 2012. (indefinido)
- ↑ Desarrollo de productos HP integrados y de escritorio innovadores con Qt (enlace no disponible) . Archivado desde el original el 3 de febrero de 2012. (indefinido)
- ↑ Lucasfilm Entertainment Company Ltd. (enlace no disponible) . Archivado desde el original el 3 de febrero de 2012. (indefinido)
- ↑ Panasonic selecciona Qt para el sistema de video HD (enlace descendente) . Archivado desde el original el 3 de febrero de 2012. (indefinido)
- ↑ Qt en Comunicaciones IP (enlace descendente) . Archivado desde el original el 3 de febrero de 2012. (indefinido)
- ↑ Qt en Home Media (enlace descendente) . Archivado desde el original el 3 de febrero de 2012. (indefinido)
- ↑ Qt ayudó a Siemens a ofrecer una plataforma de desarrollo C++ para GUI de software de fabricación (enlace descendente) . Archivado desde el original el 3 de febrero de 2012. (indefinido)
- ↑ Volvo Mobility Systems (enlace inaccesible) . Archivado desde el original el 3 de febrero de 2012. (indefinido)
- ↑ Qt ayudó a Walt Disney a reducir el tiempo de desarrollo dedicado a su aplicación de producción de largometrajes multiplataforma (enlace descendente) . Archivado desde el original el 3 de febrero de 2012. (indefinido)
Literatura
- Max Schlee. Qt 5.3 Programación profesional en C++. - San Petersburgo. : BHV-Petersburgo, 2015. - 928 p. — ISBN 978-5-9775-3346-1 .
- Borovsky A. Qt 4.7+ Programación práctica en C++. - San Petersburgo. : BHV-Petersburgo, 2012. - 496 p. — ISBN 978-5-9775-0757-8 .
- Max Schlee. Qt 4.8 Programación profesional en C++. - San Petersburgo. : BHV-Petersburg, 2012. - 912 p. - ISBN 978-5-9775-0736-3 .
- Summerfield M. Qt. Programación profesional. Desarrollo de aplicaciones multiplataforma en C++. - San Petersburgo. : Símbolo-Plus, 2011. - 560 p. - ISBN 978-5-93286-207-0 .
- Max Schlee. Qt 4.5 Programación profesional en C++. - San Petersburgo. : BHV-Petersburg, 2010. - 896 p. - ISBN 978-5-9775-0398-3 .
- J. Blanchet, M. Summerfield. Qt 4: Programación GUI en C++. 2ª edición revisada. - M. : Kudits-press, 2008. - 736 p. - ISBN 978-5-91136-059-7 .
- Zemskov Yu.V. Qt 4 con ejemplos. - San Petersburgo. : "BHV-Petersburg", 2008. - 608 p. - ISBN 978-5-9775-0256-6 .
- Max Schlee. Qt 4: Programación profesional en C++. - San Petersburgo. : BHV-Petersburg, 2007. - 880 p. - ISBN 978-5-9775-0010-6 .
- Chebotarev A. Biblioteca Qt 4. Creación de aplicaciones en el entorno Linux. - M. : Dialéctica , 2006. - 256 p. — ISBN 5-8459-0996-1 .
Enlaces
Qt |
---|
Tecnología |
|
---|
Instrumentos |
|
---|
Encuadernaciones |
|
---|
Temas relacionados |
|
---|
Juegos de herramientas (conjuntos) de elementos GUI |
---|
nivel bajo |
|
---|
alto nivel | sistema operativo amigo |
|
---|
macOS y macOS |
- Cacao
- macapp
- MacZoop
- Planta de energía
|
---|
ventanas |
|
---|
UNIX , bajo X |
|
---|
Plataforma cruzada _ | basado en flash |
|
---|
Basado en XML, AJAX o SVG |
|
---|
Basado en Java |
|
---|
Basado en C o C++ |
|
---|
Basado en Common Lisp |
|
---|
Basado en Pascual |
|
---|
Basado en Python |
|
---|
Basado en Objective-C |
|
---|
|
---|
|
---|