Fast Light Toolkit ( FLTK ) [3] es una biblioteca de widgets (elementos de control gráfico) multiplataforma para interfaces gráficas de usuario (GUI), desarrollada por Bill Spitzak y otros. Diseñada para adaptarse a la programación de gráficos 3D , tiene una interfaz para OpenGL , pero también es adecuada para la programación de GUI en general.
Al utilizar sus propios sistemas de widgets, dibujos y eventos abstraídos del código dependiente del sistema subyacente, permite escribir programas que se ven iguales en todos los sistemas operativos compatibles .
FLTK es un software gratuito y de código abierto , licenciado bajo la Licencia Pública General Reducida de GNU (LGPL) con una cláusula adicional que permite la vinculación estática desde aplicaciones con licencias incompatibles.
A diferencia de las bibliotecas de interfaz de usuario como GTK , Qt y wxWidgets , FLTK utiliza un diseño más ligero y se limita a la funcionalidad de GUI. Debido a esto, la biblioteca es muy pequeña (el programa "Hello World" de FLTK tiene alrededor de 100 KiB ) y suele estar enlazada estáticamente . También evita macros complejas, preprocesadores de código independientes y el uso de algunas características avanzadas de C++ : plantillas, excepciones e información de tipo de tiempo de ejecución (RTTI) o, para FLTK 1.x, espacios de nombres . Combinado con el tamaño modesto del paquete, esto hace que sea relativamente fácil de aprender para los nuevos usuarios. [4]
Estas ventajas tienen sus correspondientes desventajas. FLTK ofrece menos widgets que la mayoría de los kits de herramientas de GUI y, debido al uso de widgets no nativos, no tiene una apariencia nativa en ninguna plataforma.
Significado del nombre
FLTK fue diseñado originalmente para ser compatible con la biblioteca Forms escrita para máquinas Silicon Graphics (SGI) (un derivado de esta biblioteca llamado XForms todavía se usa con bastante frecuencia). En esa biblioteca, todas las funciones y estructuras comienzan con fl_
. Este nombre se extendió a todos los nuevos métodos y widgets en la biblioteca C++, y este prefijo FL
se tomó como el nombre de la biblioteca. Después de que FL se lanzó como código abierto, se descubrió que buscar "FL" en Internet era un problema, porque también es la abreviatura de Florida . Después de mucho debate y búsqueda de un nuevo nombre para el kit de herramientas, que ya estaba en uso por varias personas, Bill Spitzak se le ocurrió Fast Light Tool Kit (FLTK). [5]
Arquitectura
FLTK es un conjunto de herramientas de widgets orientado a objetos escrito en el lenguaje de programación C++ . Si bien GTK está optimizado principalmente para el sistema X Window , FLTK funciona en otras plataformas, incluidas Microsoft Windows (interconectado con la API de Windows ) y OS X (interconectado con Quartz ). Se ha implementado un back-end Wayland y estará disponible en la versión 1.4.0. [6] FLTK2 ha obtenido soporte experimental para usar opcionalmente la biblioteca de gráficos cairo .
Enlaces de idioma
Una biblioteca escrita en un lenguaje de programación se puede utilizar en otro lenguaje si se escriben enlaces de lenguaje . FLTK tiene una variedad de enlaces para varios lenguajes.
FLTK fue diseñado principalmente para el lenguaje de programación C++ y está escrito en él . Sin embargo, existen enlaces para otros lenguajes, por ejemplo Lua , [7] Perl , [8] Python , [9] Ruby , [10] Rust [11] y Tcl . [12]
Para FLTK 1.x, este ejemplo crea una ventana con un botón Aceptar :
# incluir <FL/Fl.H> # incluir <FL/Fl_Ventana.H> # incluir <FL/Fl_Botón.H> int main ( int argc , char * argv []) { Fl_Window * w = new Fl_Window ( 330 , 190 ); new Fl_Button ( 110 , 130 , 100 , 35 , "Está bien" ); w -> fin (); w -> mostrar ( argc , argv ); devolver Fl :: ejecutar (); }
Diseñadores de GUI
FLTK incluye Fast Light User Interface Designer ( FLUID ), un diseñador gráfico de GUI que genera archivos de encabezado y fuente de C++ .
Usar
Muchos programas y proyectos utilizan FLTK, incluidos:
- Nanolinux , distribución Linux de 14 MB [13] [14] [15] [16] [17] [18]
- XFDOS, una distribución basada en FreeDOS con una GUI , que porta Nano-X y FLTK [19] [15] [16] [18]
- Agenda VR3 , un asistente digital personal basado en Linux con software basado en FLTK.
- Amnesia: The Dark Descent , de Frictional Games, utiliza FLTK como su aplicación de inicio
- MwendanoWD, Rompecabezas lógico para computadora personal de YPH. [20]
- Audio:
- Fldigi , software de radioaficionado , permite la transmisión de datos y chat de texto a través de modos digitales como PSK31
- Giada, looper, microsecuenciador, software de reproducción de muestras, código abierto [21]
- Prodatum, editor de preajustes de sintetizador, utiliza un diseño de interfaz realista [22]
- ZynAddSubFX , un sintetizador de software de código abierto
- DiSTI GL Studio, herramienta de desarrollo de interfaz hombre-máquina [23]
- Ingeniería:
- ForcePAD, una herramienta intuitiva para visualizar el comportamiento de estructuras sujetas a condiciones de carga y de borde [24]
- Gmsh , un generador de mallas de elementos finitos de código abierto
- RoboCIM, software para simular y controlar el funcionamiento de un sistema servo robot y dispositivos externos [25]
- Entorno de escritorio Equinox (EDE)
- Software de grabación de discos ópticos FlBurn para Linux [26]
- Gráficos:
- CinePaint , software de pintura profunda, migración de GTK a FLTK, código abierto
- ITK-SNAP , aplicación de software para segmentación de imágenes médicas, de código abierto
- Nuke , un programa de composición digital. Hasta la versión 5, ahora reemplazado por Qt
- Abrir el editor de películas [27]
- OpenVSP , un sistema CAD 3D paramétrico de código abierto de la NASA para el diseño y análisis de aeronaves [28]
- PosteRazor, software de impresión de carteles de código abierto para Windows, OS X y Linux [29]
- Tilemap Studio, un editor de mapas de mosaicos de código abierto para proyectos de Game Boy, Color, Advance, DS y SNES [30]
- SmallBASIC , puerto de Windows
- Navegadores web:
- Dillo , Dillo-2 se basó en FLTK-2, el abandono de esta rama de FLTK, sin un lanzamiento oficial, fue una de las principales causas del inicio de Dillo-3, utilizando FLTK1.3
- En quinto lugar, replica el funcionamiento de la ópera primitiva [31]
- NetRider [32]
- Visualizador cerebral: un visualizador interactivo de código abierto para modelos cerebrales tridimensionales a gran escala. Parte del sistema de simulación de la organización cerebral (BOSS) desarrollado en la Universidad Stony Brook [33]
- Gestores de ventanas X :
Versiones
Este historial de versiones es un ejemplo de la naturaleza a veces tumultuosa del desarrollo de código abierto . [34]
1.0.x
Esta es una versión estable anterior, ahora sin mantenimiento.
1.1.x
Esta es una versión estable anterior, ahora sin mantenimiento.
Rama 2.0
Esta era una rama de desarrollo que durante mucho tiempo se consideró el siguiente paso en la evolución de FLTK, con muchas características nuevas y un estilo de programación más limpio. Nunca alcanzó la estabilidad y el desarrollo prácticamente ha cesado. La rama está inactiva ahora.
1.2.x
Este fue un intento de tomar algunas de las mejores características de la versión 2.0 y fusionarlas con la versión 1.1, que es más popular. Ya no se desarrolla.
1.3.x
Versión estable actual. [35] Proporciona soporte para UTF-8.
1.4.x
Rama de desarrollo actual. Añade más funciones a la versión 1.3. [35]
Rama 3.0
Esta rama es principalmente un modelo conceptual para trabajos futuros. Actualmente inactiva.
Véase también
Referencias
- ^ https://www.fltk.org/articles.php?L1898
- ^ "Acuerdo de licencia de FLTK". Archivado desde el original el 18 de diciembre de 2001. Consultado el 30 de enero de 2020 .
- ^ "Fast Light Toolkit - Fast Light Toolkit (FLTK)" (Kit de herramientas Fast Light) en www.fltk.org . Archivado desde el original el 2020-02-02 . Consultado el 2020-01-30 .
- ^ "Fast Light ToolKit (FLTK) » CppLibs". Archivado desde el original el 18 de mayo de 2015. Consultado el 13 de mayo de 2015 .
- ^ "Artículo n.° 363: ¿Qué significa "FLTK"? - Fast Light Toolkit (FLTK)". www.fltk.org . Archivado desde el original el 2020-07-31 . Consultado el 2020-01-30 .
- ^ "STR #3371: Compatibilidad con el protocolo Wayland Display Server - Fast Light Toolkit (FLTK)". www.fltk.org . Archivado desde el original el 2022-11-19 . Consultado el 2020-08-06 .
- ^ "Página de inicio de MurgaLua". Archivado desde el original el 7 de julio de 2012. Consultado el 18 de diciembre de 2008 .
- ^ "Enlaces: Por categoría - Enlaces - Fast Light Toolkit (FLTK)". www.fltk.org . Archivado desde el original el 2023-03-15 . Consultado el 2023-04-07 .
- ^ "Página de inicio de pyFLTK". pyfltk.sourceforge.io . Archivado desde el original el 2023-04-07 . Consultado el 2023-04-07 .
- ^ "Ruby/FLTK". ruby-fltk.sourceforge.net . Archivado desde el original el 2023-04-13 . Consultado el 2023-04-07 .
- ^ "fltk - Rust". docs.rs . Archivado desde el original el 2023-04-07 . Consultado el 2023-04-07 .
- ^ "Extensión dinámica Tcl/Fltk para Tcl". SourceForge . 3 de abril de 2013. Archivado desde el original el 7 de abril de 2023 . Consultado el 7 de abril de 2023 .
- ^ "Nanolinux". SourceForge . 8 de octubre de 2016. Archivado desde el original el 11 de noviembre de 2020 . Consultado el 15 de abril de 2018 .
- ^ "De lo diminuto al extremo: Nanolinux". 30 de noviembre de 2014. Archivado desde el original el 16 de abril de 2018. Consultado el 15 de abril de 2018 .
- ^ ab «Entrevista con el desarrollador de Nanolinux». 30 de diciembre de 2014. Archivado desde el original el 16 de abril de 2018. Consultado el 15 de abril de 2018 .
- ^ ab "Métodos de inteligencia artificial". Archivado desde el original el 20 de abril de 1999. Consultado el 15 de agosto de 2019 .
- ^ "Editores HTML para PC". Archivado desde el original el 16 de abril de 2018. Consultado el 15 de abril de 2018 .
- ^ ab "Página personal de Georg". www.georgpotthast.de . Archivado desde el original el 17 de agosto de 2018 . Consultado el 15 de abril de 2018 .
- ^ "¡Un ejemplo extraordinario de conocimientos tradicionales!". 12 de octubre de 2012. Archivado desde el original el 16 de abril de 2018. Consultado el 15 de abril de 2018 .
- ^ "YPH". Archivado desde el original el 2018-10-27 . Consultado el 2018-10-27 .
- ^ "Giada, hardcore loopmachine". Archivado desde el original el 25 de septiembre de 2011. Consultado el 29 de septiembre de 2011 .
- ^ "prodatum - página oficial". prodatum.sourceforge.net . Archivado desde el original el 2023-04-07 . Consultado el 2023-04-07 .
- ^ "DiSTI GL Studio". Archivado desde el original el 15 de agosto de 2012. Consultado el 29 de julio de 2010 .
- ^ "ForcePAD". forcepad.sourceforge.net . Archivado desde el original el 2023-04-07 . Consultado el 2023-04-07 .
- ^ "RoboCIM - Software de robótica". Archivado desde el original el 4 de mayo de 2013. Consultado el 29 de junio de 2013 .
- ^ "Software gratuito de grabación de CD y DVD para Linux". flburn.sourceforge.net . Archivado desde el original el 2023-04-10 . Consultado el 2023-04-07 .
- ^ "Open Movie Editor - Editor de vídeo gratuito y de código abierto". www.openmovieeditor.org . Archivado desde el original el 18 de mayo de 2012. Consultado el 12 de abril de 2008 .
- ^ "OpenVSP". openvsp.org . Archivado desde el original el 2023-04-07 . Consultado el 2023-04-07 .
- ^ "PosteRazor - ¡Haz tu propio póster!". posterazor.sourceforge.io . Archivado desde el original el 2023-04-07 . Consultado el 2023-04-07 .
- ^ "Tilemap Studio". GitHub . 18 de octubre de 2021. Archivado desde el original el 8 de septiembre de 2021 . Consultado el 8 de septiembre de 2021 .
- ^ "Quinto - Inicio". fifth-browser.sourceforge.net . Archivado desde el original el 2023-04-14 . Consultado el 2023-04-07 .
- ^ "NetRider". SourceForge . 23 de febrero de 2016. Archivado desde el original el 7 de abril de 2023 . Consultado el 7 de abril de 2023 .
- ^ "Viz (Visualizador cerebral)". GitHub . 25 de agosto de 2021. Archivado desde el original el 8 de septiembre de 2021 . Consultado el 8 de septiembre de 2021 .
- ^ "¿Cuáles son las versiones de FLTK?". Archivado desde el original el 28 de junio de 2010. Consultado el 23 de julio de 2010 .
- ^ desde https://www.fltk.org/articles.php?L825 Archivado el 2 de agosto de 2019 en Wayback Machine. Tomado el 5 de marzo de 2017.
Enlaces externos