FLTK

De Wikipedia, la enciclopedia libre
Saltar a: navegación, búsqueda
FLTK
Fltk shadow.png
Desarrollador
Bill Spitzak
www.fltk.org
Información general
Última versión estable 1.3.0 (info)
16 de junio de 2011; hace 2 años (2011-06-16)
Género Biblioteca de desarrollo
Programado en C++
Sistema operativo Unix/Linux/BSD (X11), Mac OS X, Windows
Licencia LGPL con la excepción que permite enlace estático.

«Fast, Light Toolkit» (se pronuncia «felteck») es una biblioteca de GUI multiplataforma, desarrollada inicialmente por Bill Spitzak y luego mantenida por un grupo de desarrolladores alrededor del mundo. La biblioteca fue desarrollada teniendo en cuenta programación de gráficos 3D en mente, para esto tiene una interfaz a OpenGL, pero es aún apropiada para desarrollar aplicaciones IGU de propósito general.

Utilizando sus propios widgets, trazado de gráficos 2D y sistema de eventos (aunque FLTK2 ha ganado experimental soporte para usar opcionalmente la biblioteca gráfica cairo) desarrollados sobre el abstracto código dependiente del sistema, lo cual permite escribir programas que lucen idénticos cuando son compilados en cualquiera de los sistemas operativos soportados.

FLTK es software libre, licenciado bajo LGPL con la cláusula adicional que permite enlazado estático por aplicaciones con licencias incompatibles. Además incluye a FLUID (del inglés, FLTK User Interface Designer), una interfaz de diseño gráfico de FLTK que genera los archivos de cabecera y código para una IGU desarrollada.

En contraste a otras bibliotecas como Qt y wxWidgets, FLTK aplica una estricta regla de eficiencia antes de apariencia, lo que le cuesta restricciones a su apariencia y funcionalidad, pero por otro lado, hace de FLTK una biblioteca que consume muy bajos recursos y muy pequeña en tamaño. Esto se refleja en el pequeño tamaño de los programas (el programa «Hola, Mundo!» en FLTK solo ocupa alrededor de 100 KiB), y permite que sea usualmente estáticamente enlazada, aunque el enlace dinámico también esta disponible. Lo que previene el uso de complicados macros y preprocesamiento de código separado, además no hace uso de avanzadas características de C++ como: plantillas, excepciones, RTTI. Las versiones FLTK 1.1.x no usan namespace. Por lo anterior y combinado con el modesto tamaño del paquete, requiere de una corta curva de aprendizaje para los nuevos usuarios.

Pero estas ventajas como se comentó anteriormente vienen con sus correspondiente desventajas. FLTK ofrece menos widgets o menos efectos que otras que más grandes bibliotecas gráficas, además por usar widgets no nativos, no luce como las aplicaciones nativas que lucen y se siente igual que la plataforma gráfica del sistema.

Origen del nombre[editar]

FLTK fue originalmente diseñada para ser compatible con la biblioteca Forms desarrollada para sistemas SGI (un derivado de esta biblioteca se conoce como «XForms» que aun es frecuentemente utilizada). En esa biblioteca todas las funciones y estructuras inician con «fl_». Este estilo fue extendido a todos los nuevos métodos y widgets en la bibliotecas C++, y el prefijo «FL» fue tomado como nombre de la biblioteca. Después que FL fue liberada como código abierto, fue descubierto que fue imposible buscar por «FL» en Internet, debido al hecho que es la abreviación usada para Florida. Después de muchos debates y buscado por un nuevo nombre para la biblioteca, la cual fue para entonces utilizada por muchos desarrolladores y usuarios, Su creador Bill Spitzak tuvo la idea de usar «FLTK», con la explicación que significaba la abreviación para la frase en inglés «Fast Light Tool Kit», que traduce «Herramientas de Software Rápidas y Livianas».

Desarrollando aplicaciones con FLTK[editar]

Desarrollando aplicaciones con FLUID.

FLTK fue principalmente diseñada para, y escrita en, el lenguaje de programación C++. Sin embargo, diferentes interfaces existen para otros lenguajes de programación orientada a objetos, por ejemplo Python[1] y Ruby.[2]

El siguiente ejemplo para FLTK 1.x crea una ventana con el texto "Hola, Mundo!" sobre un botón:

# include <FL/Fl.H>
# include <FL/Fl_Window.H>
# include <FL/Fl_Button.H>
 
int main(int argc, char *argv[]) {
   Fl_Window* w = new Fl_Window(330, 190);
   new Fl_Button(110, 130, 100, 35, "Hola, Mundo!");
   w->end();
   w->show(argc, argv);
   return Fl::run();
}

Software desarrollado sobre FLTK[editar]

Véase también[editar]

Referencias[editar]

Enlaces externos[editar]