FLTK software | |
---|---|
![]() | |
![]() | |
Genere | Libreria grafica (non in lista) |
Data prima versione | 1998 |
Ultima versione | 1.4.2 (23 febbraio 2025) |
Sistema operativo | Linux Microsoft Windows macOS |
Linguaggio | C++ |
Licenza | GNU Lesser General Public License (licenza libera) |
Lingua | Multilingue |
Sito web | www.fltk.org |
Modifica dati su Wikidata ·Manuale |
Fast Light Toolkit (FLTK), ininformatica, è un toolkitmultipiattaforma per la realizzazione diinterfacce grafiche (GUI)[1], sviluppata inizialmente da Bill Spitzak e altri.
Utilizzando i propriwidget, sistemi di disegno ed eventi astratti dal sistema sottostante, consente di scrivere programmi che hanno lo stesso aspetto su tutti isistemi operativi supportati.
FLTK è unsoftware libero e open source, concesso in licenza sottoGNU Lesser General Public License (LGPL) con una clausola aggiunta che consente il collegamento statico da applicazioni con licenze incompatibili.
A differenza delle librerie dell'interfaccia utente comeGTK,Qt ewxWidgets, FLTK utilizza un design più leggero e si limita alla funzionalità della GUI. Per questo motivo, lalibreria è molto piccola (il programma FLTK di"Hello World" è di circa 100KiB) e di solito ècollegata staticamente. Evita inoltre macro complesse,preprocessori di codice separati e l'uso di alcune funzionalità avanzate diC++: modelli,eccezioni einformazioni sul tipo di runtime (RTTI) o, per FLTK 1.x, inamespace. Il tutto, in combinazione con le dimensioni modeste del pacchetto, rende relativamente facile l'apprendimento per i nuovi utenti.[2]
Questi vantaggi comportano anche svantaggi corrispondenti. FLTK offre meno widget rispetto alla maggior parte dei toolkit GUI e, a causa dell'utilizzo di widget non nativi, non ha un aspetto nativo su nessuna piattaforma.
FLTK è stato originariamente progettato per essere compatibile con la libreria Forms sviluppata per macchineSilicon Graphics (SGI) (un derivato di questa libreria chiamatoXForms è ancora abbastanza usato). In quella libreria, tutte le funzioni e le strutture iniziano confl_
. Questa denominazione è stata estesa a tutti i nuovi metodi e widget nella libreria C++ e questo prefissoFL
è stato utilizzato come nome della libreria. Dopo che FL è stato rilasciato come open source, si è scoperto che cercare "FL" su Internet era un problema, perché è anche l'abbreviazione dello stato dellaFlorida. Dopo molte discussioni e la ricerca di un nuovo nome per il toolkit, che era già utilizzato da diverse persone, Bill Spitzak ha inventatoFast Light Tool Kit (FLTK).[3]
FLTK è untoolkit widgetorientato agli oggetti scritto nel linguaggio di programmazioneC++. Mentre GTK è ottimizzato principalmente perX Window System eWayland, FLTK funziona bene su altre piattaforme, tra cuiMicrosoft Windows (interfacciato conWindows API) eMacOS (interfacciato conQuartz). È stato implementato un back-endWayland che sarà disponibile nella versione 1.4.0.[4] FLTK2 ha ottenuto il supporto sperimentale per l'utilizzo facoltativo della libreria graficaCairo.
Una libreria scritta in un linguaggio di programmazione può essere utilizzata in un altro linguaggio se vengono sviluppati i relativibinding. FLTK ha una gamma di associazioni per vari linguaggi.
FLTK è stato scritto e progettato principalmente nellinguaggio di programmazioneC++. Tuttavia, esistono binding per altri linguaggi, ad esempioLua[5],Perl[6],Python[7],Ruby[8],Rust[9] eTcl[10].
Per FLTK 1.x, questo esempio di codice crea una finestra con unpulsanteOK:
#include<FL/Fl.H>#include<FL/Fl_Window.H>#include<FL/Fl_Button.H>intmain(intargc,char*argv[]){Fl_Window*w=newFl_Window(330,190);newFl_Button(110,130,100,35,"Okay");w->end();w->show(argc,argv);returnFl::run();}
FLTK includeFast Light User Interface Designer (FLUID), undesigner grafico della GUI che genera file sorgente e di intestazioneC++.
Questa cronologia delle versioni è un esempio della natura talvolta tumultuosa dello sviluppo open source.[11]
Questa è la versione stabile precedente, ora non mantenuta.
Questa è la versione stabile precedente, ora non mantenuta.
Questo era un ramo di sviluppo, a lungo pensato come il step successivo nell'evoluzione di FLTK, con molte nuove funzionalità e uno stile di programmazione più pulito. Non ha mai raggiunto la stabilità e lo sviluppo è sostanzialmente cessato.
Questo è stato un tentativo di prendere alcune delle migliorie della versione 2.0 e di unirle nuovamente nel più popolare ramo 1.1. Non è più sviluppato.
Versione stabile attuale.[11] Fornisce il supportoUTF-8.
Ramo di sviluppo attuale. Aggiunge più funzionalità alla versione 1.3.[11]
Questo ramo è principalmente un modello concettuale per il lavoro futuro. Ora inattivo.
Altri progetti