FLTK intro

Breve introduzione alla programmazione del toolkit FLTK

Il presente documento è una breve introduzione alla programmazione del toolkit FLTK (www.fltk.org). Per una trattazione completa si veda il manuale ufficiale allegato alla distribuzione (e richiamabile tramite l'help di FLUID), oppure la documentazione on-line (http://www.fltk.org/documentation.php).

Caratteristiche principali e vantaggi del FLTK

Studio degli esempi allegati

Una volta scaricati e compilati i sorgenti, si troveranno nella sottodirectory test una serie di esempi, già compilati e ovviamente completi di codice sorgente. Lo studio di tali esempi permette di imparare le tecniche di base dell'fltk.

Per studiare più chiaramente un esempio è più comodo isolarlo dalla affollata directory test. Ad esempio, per il codice cube (funzionante con la libreria OpenGL):

E' quantomeno sorprendente il risultato ottenuto con un sorgente di 4.7Kb ed un eseguibile (statico) di 171Kb.

Nel caso di un esempio costruito con FLUID (fast_slow):

In questo caso il risultato è ottenuto da un sorgente di soli 1.2Kb! E' interessante notare come l'eseguibile sia ottenuto partendo dal solo file .fl.

Il comando fltk-config

Come molti toolkit anche fltk, una volta installato, mette a disposizione un comando (fltk-config) che permette di automatizzare la creazione dei flags per il compilatore ed il linker. Per ottenere l'elenco delle opzioni possibili digitare:

  fltk-config --help
Il comando può essere utilizzato direttamente all'interno di un comando di compilazione: (attenzione: l'apice da usare è quello invertito: [altGr]['] )
  g++ elenco_dei_sorgenti `fltk-config --ldflags` -o nome_dell_eseguibile
oppure all'interno di un makefile:
  LDFLAGS=`fltk-config --ldflags`
  CFLAGS=`fltk-config --cflags`

FLUID, il visual editor di fltk

La distribuzione ufficiale di FLTK include anche un, essenziale, editor per la costruzione visuale delle interfacce.


fig1: l'interfaccia di FLUID


fig2: la "widget bin"

Fluid utilizza un semplice file di testo per salvare l'interfaccia costruita. Per convenzione si utlizza l'estensione .fl (che va inserita manualmente al momento del salvataggio del progetto).

Una volta terminata la costruzione del'interfaccia sarà sufficiente, dal menù file selezionare la voce Write Code. Fluid scriverà il codice (C o C++) necessario per realizzare l'interfaccia. Tale codice può essere utlizzato sia copiandolo all'interno del nostro sorgente, sia come file a sè stante, includendolo nel source tree. E' inoltre possibile editare il codice direttamente all'interno di fluid, costruendo l'applicazione direttamente nell'editor.

L'uso è intuitivo, si tengano presenti però alcune caratteristiche:

Esempio di utilizzo di FLUID

In questo esempio verrà spiegato, passo per passo, come realizzare una semplice finestra di countdown. Si apprenderanno le tecniche elementari di utlizzo di FLUID. (download: countdown.fl)


fig3: countdown

Si comincierà con il creare l'interfaccia tramite Fluid, senza preoccuparsi, inizialmente, del codice.

A questo punto l'eseguibile countdown è pronto nella directory di progetto. Chiaramente, non avendo aggiunto codice, l'interfaccia funziona, ma non fa nulla.

Per aggiungere una funzione di callback (eseguita alla pressione del pulsante):

Aggiungiamo anche una progress bar che funzioni da conto alla rovescia:

A questo punto il progetto dovrebbe apparire come in fig1. La progress bar realizza un countdown prima della chiusura della finestra.

matteolucarelli.altervista.org
©opyright info