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:

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:

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. 1 2 https://my.safaribooksonline.com/0131872494/pref04
  2. El proyecto de código abierto qt en Open Hub: página de idiomas - 2006.
  3. 1 2 3 4 5 6 7 8 9 Directorio de software libre
  4. https://www.qt.io/blog/qt-6.4-released
  5. http://trolltech.com/company/newsroom/announcements/press.2008-01-18.1601592972
  6. 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.
  7. アーカイブされたコピー(enlace no disponible) . Consultado el 3 de agosto de 2007. Archivado desde el original el 9 de agosto de 2007. 
  8. http://www.qtsoftware.com/products/qt/jambi/  (enlace descendente)
  9. Framework Qt para QNX . Archivado el 2 de noviembre de 2011 en Wayback Machine . 
  10. Cambio I4352629a: soporte preliminar de Windows RT y Windows Phone . Archivado el 23 de octubre de 2013 en Wayback Machine . 
  11. El puerto WinRT de Qt y su uso de C++/CX Archivado el 29 de octubre de 2013.  (Inglés)
  12. 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.
  13. 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.
  14. Primeros pasos con Lighthouse . Consultado el 25 de noviembre de 2011. Archivado desde el original el 27 de abril de 2015.
  15. 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. 
  16. 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.
  17. 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.
  18. Proyecto Necessitas (enlace descendente) . Consultado el 10 de abril de 2015. Archivado desde el original el 20 de febrero de 2016. 
  19. 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.
  20. Plataformas compatibles . Consultado el 1 de febrero de 2014. Archivado desde el original el 26 de diciembre de 2014.
  21. 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.
  22. 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.
  23. 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.
  24. Qt para WinRT . Proyecto QT . Consultado el 9 de septiembre de 2014. Archivado desde el original el 14 de julio de 2019.
  25. 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.
  26. 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.
  27. 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. 
  28. 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. 
  29. QtWebEngine/ChromiumVersions-Qt Wiki . wiki.qt.io._ _ Recuperado: 24 Agosto 2022.
  30. 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.
  31. 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.
  32. Qt en Autodesk (enlace descendente) . Archivado desde el original el 3 de febrero de 2012. 
  33. Qt en efectos visuales (enlace descendente) . Archivado desde el original el 3 de febrero de 2012. 
  34. Qt en VideoLan Player (enlace descendente) . Archivado desde el original el 3 de febrero de 2012. 
  35. 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. 
  36. Qt en la Agencia Espacial Europea (enlace no disponible) . Archivado desde el original el 3 de febrero de 2012. 
  37. 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. 
  38. 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. 
  39. Desarrollo de productos HP integrados y de escritorio innovadores con Qt (enlace no disponible) . Archivado desde el original el 3 de febrero de 2012. 
  40. Lucasfilm Entertainment Company Ltd. (enlace no disponible) . Archivado desde el original el 3 de febrero de 2012. 
  41. Panasonic selecciona Qt para el sistema de video HD (enlace descendente) . Archivado desde el original el 3 de febrero de 2012. 
  42. Qt en Comunicaciones IP (enlace descendente) . Archivado desde el original el 3 de febrero de 2012. 
  43. Qt en Home Media (enlace descendente) . Archivado desde el original el 3 de febrero de 2012. 
  44. 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. 
  45. Volvo Mobility Systems (enlace inaccesible) . Archivado desde el original el 3 de febrero de 2012. 
  46. 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. 

Literatura

Enlaces