1. Qt Framework
02. 2009
Open Source
Autore: P. Sereno
Argomenti trattati:
Premessa
Questa presentazione è rilasciata sotto Licenza
- Cosa è Qt? Creative Commons: Attribution-NonCommercial-NoDerivativeWorks
(http://creativecommons.org/licenses/by-nc-nd/3.0/deed.it).
- Storia di Qt
Questo documento può quindi essere riprodotto senza violare nessuna legge,
- Perché usare Qt? sia in versione elettronica, sia in versione cartacea, purché sia riprodotto
integralmente in tutte le sue parti, compresa la pagina che contiene queste
- Cross-platform informazioni:
- KDE e Qt Versione originale scaricabile dal sito
http://www.sereno-online.com/site/
- Linguaggi supportati
Tutti i marchi riportati in questa pubblicazione appartengono ai rispettivi
proprietari.
Scopo
Scopo di questa presentazione è fornire informazioni divulgative a un pubblico
Notizie chiave:
specifico. Questo tipo di pubblicazione si propone infatti di fornire una prima
introduzione all’utilizzo del Qt Application Framework per lo sviluppo di
Qt è gratis!
applicazioni software cross-platform in ambito Open Source. Esulano dallo
Qt è cross-platform scopo di questo documento l’approfondimento degli aspetti legati alla licenza
commerciale di Qt e l’approfondimento degli aspetti legali e/o normativi implicati
KDE usa Qt
dall’adozione di una licenza GPL o LGPL.
2. Qt Framework Pagina 2 di 6
Che cosa è Qt?
Qt è una libreria di classi Cio’ e’ stato reso possibile molti campi per
ed un insieme di strumenti grazie all’adozione di applicazioni sia open
per lo sviluppo di un’interfaccia di source, sia commerciali.
interfacce utente grafiche programmazione delle Gli esempi più famosi
(GUI) multi piattaforma, e’ applicazioni (API) unica citati dalla stessa
conosciuto infatti anche ed indipendente Trolltech, sono Adobe
con il nome di toolkit Qt. dall’hardware e dal Photoshop Album
Sviluppato in origine, dalla software di sistema. (elaborazione ed
norvegese Trolltech, ora Insieme con la libreria di archiviazione immagini),
acquistata da Nokia, Qt classi, vengono forniti Skype (comunicazioni
permette lo sviluppo strumenti di supporto per il VoIP) e Scribus (editing e
Qt è una libreria di
software secondo la design grafico (Qt desktop publishing).
classi ed un insieme di filosofia “write once, Designer), per la
strumenti per lo compile anywhere”, che traduzione linguistica (Qt
sviluppo di interfacce significa letteralmente Linguist) e il manuale in
“scrivi una sola volta e linea (Qt Assistant).
utente grafiche (GUI)
compila ovunque”. In altre Molte distribuzioni Linux
parole, Qt permette agli (tra le maggiori troviamo
sviluppatori di scrivere Debian, SuSE, RedHat)
codice sorgente contengono il toolkit Qt,
perfettamente compilabile esso è la base su cui è
su diversi sistemi stato costruito l’intero
operativi, quali ad desktop environment KDE
esempio MS Windows, ed è stato integrato sin
Mac OS X, Linux, Solaris, dall’inizio nell’IDE di
HP-UX, molte versioni riferimento per il mondo
UNIX con grafica X11 ed KDE, ovvero Kdevelop.
embedded Linux. Qt è attualmente usato in
Qt è gratis!
Qt è disponibile per il verrà aperto alla crattere meno “virale”
download all’indirizzo: collaborazione esterna. della GPL e consente, tra
http://www.qtsoftware.com L’annuncio di questa l’altro, di includere il
E’ possibile scaricare gli nuova era dello sviluppo codice Qt anche all’interno
eseguibili e i sorgenti di Qt è stato infatti dato da di applicazioni closed
dell’intero toolkit per i Nokia ad inizio 2009 e si source.
diversi sistemi operativi inserisce nel contesto
supportati. A partire alla inquadrato dall’adozione
versione 4.5 il repository della LGPL (v. 2.1) che ha
3. Pagina 3 di 6 Qt Framework
Storia di Qt
Il toolkit Qt fu inizialmente migliore dei modi e si Nell’aprile 1997 il
sviluppato dai fondatori dovette attendere sino ad fondatore del progetto
della Trolltech, Haavard aprile 1995 per avere il KDE, Mattias Ettrich
Nord ed Eirik Chambe primo contratto; il nome Qt decise di adottare Qt per il
Eng. Lo sviluppo di un venne scelto perché la suo progetto e, con il
toolkit in C++ per la lettera ‘Q’, tra i caratteri rilascio della versione 1.2,
realizzazione di Graphical disponibili su Emacs, il toolkit Qt divenne lo
User Interface (GUI) iniziò piaceva ad Haavard e la standard “de facto” per la
nel 1988, per conto di lettera ‘t’ venne aggiunta realizzazione di GUI in
un’azienda svedese, che per rappresentare la C++ per Linux. Qt: le fondamenta su cui è
commissionò il lavoro ai parola inglese “toolkit” stato costruito KDE.
due ricercatori e due anni (letteralmente l’insieme di Nel 1998, Mattias decise
più tardi, venne strumenti di lavoro). di entrare a far parte del
completato lo sviluppo di team di sviluppatori
un’applicazione per la Il 20 maggio venne Trolltech (attualmente
gestione di una banca dati rilasciata la versione 0.90 ricopre il ruolo di vice
di immagini, ottenute da del toolkit e resa presidente) e contribuì al
apparecchiature mediche disponibile su rilascio della versione 2.0.
ad ultrasuoni; poiché sunsite.unc.edu, sei giorni Questa versione
questa applicazione dopo venne annunciata sul conteneva un gran numero
doveva permettere newsgroup di cambi nell’architettura e
l’esecuzione comp.os.linux.announce. rappresentò un notevole
dell’interfaccia utente su balzo in avanti nella
sistemi MS Windows, Mac realizzazione di un toolkit
Questa fu la prima release
e UNIX, gettò le basi di stabile e maturo; vennero
pubblica di Qt, essa
quello che oggi è uno dei aggiunte quaranta nuove
poteva essere usata sia
punti di forza di Qt: la per lo sviluppo di classi, tra cui il supporto
portabilità del codice interfacce grafiche per MS per l’UNICODE e
sorgente su diverse Windows, sia per Linux ed nell’agosto del 1999 vinse
piattaforme o, come si dice il LinuxWorld award come
offriva le stesse API su
correntemente, lo sviluppo miglior libreria software.
entrambe le piattaforme.
“cross-platform”. Qt fu reso disponibile
secondo due licenze d’uso L’anno 2000 segna
Nel 1991 si iniziò a sin dal primo giorno: la l’ingresso sul mercato
scrivere le prime classi di licenza commerciale dell’ambiente
Qt a seguito dell’idea di serviva per lo sviluppo di Qt/embedded, concepito
implementazione del applicazioni commerciali o appositamente per
meccanismo di “close source” e la free supportare la piattaforma
Signals&Slots, un software edition per lo Linux/embedded. In
semplice ma potente sviluppo di applicazioni quell’anno, Trolltech
modo per far comunicare open source. decise di cambiare la sua
tra loro le classi del toolkit. politica di licenza da QPL
Nel 1993, dopo aver Nel marzo 1996, l’agenzia (politica open source
trascorso due anni a spaziale europea (ESA) appositamente redatta
lavorare sul progetto dalla Trolltech) a favore
divenne il secondo cliente
senza contratti e senza della ben più nota ed
della Trolltech e da questo
stipendio, Haavard ed Eirik accettata GPL. Questo
momento iniziò un periodo
resero disponibile il primo cambiamento venne
che portò in breve tempo
kernel grafico e decisero di al rilascio della versione accolto con entusiasmo
entrare in affari 0.97 (maggio), della dalle comunità open
presentando al mondo “il source (KDE per prima) di
versione 1.0 (settembre) e
miglior GUI toolkit in C++ tutto il mondo.
prima della fine dell’anno
multipiattaforma”. si giunse alla versione 1.1
usata da otto diversi
Il 1994 non iniziò nel clienti.
4. Qt Framework Pagina 4 di 6
Qt 3
Il nuovo attesissimo balzo aggiunse quarantadue sviluppatori (open source
in avanti avvenne nel nuove classi e il codice e non) di tutto il mondo,
2001 con il rilascio della superò le 500.000 linee. sia per le eccellenti
versione 3.0. caratteristiche tecniche
Dal 2001 al 2005 si è del prodotto, sia per la
Il nuovo attesissimo Qt era ora disponibile per passati attraverso politica di rilascio del
balzo in avanti avvenne MS Windows, UNIX, numerose minor releases prodotto aperta e
nel 2001 con il rilascio Linux, Embedded Linux e che hanno fatto del toolkit lungimirante.
della versione 3.0. Mac OS X. Qt 3.0 Qt un mito tra gli
Qt 4
A partire dalla quarta Scribe, il renderer per di scripting QtScript che
major release, sono state testo unicode va a sostituire
introdotte nuove il "glorioso", ma meno
tecnologie nel "core" della Mainwindow, ovvero la performante QSA.
Libreria, particolarmente nuova modalità di
utili per KDE. gestione della main
Fondamentalmente esse window di una qualsiasi
sono: applicazione Qt.
Arthur, il nuovo sistema Unitamente a ciò, è stato
di disegno dei widgets. introdotto il nuovo motore
2008: Nokia acquista Trolltech
Nel giugno 2008 la più mature piattaforme interessante per
finlandese Nokia ha open source per il contrastare l’ascesa di
acquistato la piccola mercato Android come futuro
Trolltech offrendo circa embedded/mobile: standard per la telefonia
850 milioni di corone Qtopia, anch’essa cellulare.
norvegesi (poco più di 100 rilasciata sotto licenza
milioni di euro), una GPL.
somma significativamente
superiore al valore delle La versione Phone Edition
Nel giugno 2008 la azioni di Trolltech. di Qtopia (piattaforma
finlandese Nokia ha Occorre sottolineare che operativa per la telefonia
acquistato la piccola al momento cellulare), di recente
Trolltech offrendo circa dell’acquisizione, Nokia è introduzione nel mercato,
850 milioni di corone entrata in possesso, ha sicuramente
norvegesi (poco più di unitamente al Qt rappresentato per Nokia
100 milioni di euro) framework, di una tra le un’opportunità
5. Pagina 5 di 6 Qt Framework
Perché usare Qt ?
Per sistemi UNIX, Qt royalty per ogni portare il codice sorgente
rappresenta un’ottima applicazione venduta). scritto anche su altre
possibilità, è portabile, è Supponiamo che si voglia piattaforme, sarà
veloce, facile da imparare scrivere software sufficiente la
ed usare, inoltre, se si commerciale closed ricompilazione e la nostra
scrive software open source per la piattaforma applicazione potrà essere
source per Linux, BSD, Windows, per quale eseguita in modo nativo
Solaris o molte altre motivo si dovrebbe usare sulla nuova piattaforma.
varianti UNIX, Qt è Qt, per il mondo Windows
gratuito. In altre parole, esistono già diversi I principali linguaggi di
non si deve pagare alcuna ambienti di sviluppo porgrammazione
licenza. commerciali e diversi supportati sono:
toolkit GUI? La risposta a
In caso contrario, se si questa domanda può
C++ Qt si integra
sviluppa codice arrivare se si pensa alla
Java perfettamente con gli
commerciale, occorre portabilità. Python (PyQt)
acquistare una licenza per strumenti di sviluppo
lo sviluppo (ma non si Scrivere applicazioni con open source di Linux.
dovrà pagare alcuna Qt permette infatti di
Cross-Platform: cosa vuol dire?
Un toolkit che permetta lo look&feel (aspetto quanto se le piattaforme
sviluppo di GUI multi- estetico) nativo. Per contro sono tra loro troppo
piattaforma, deve lo svantaggio principale è differenti, l’uso di una API
implementare una dovuto alla lentezza dei di riferimento è molto
strategia per nascondere programmi scritti, complicato da realizzare.
al programmatore i dettagli basandosi sulle nuove
dovuti alle API native del API; infatti lo strato La terza strategia è quella
sistema operativo software aggiuntivo va ad adottata da Qt e consiste
sottostante. appesantire l’esecuzione nell’emulare il vero
con inevitabili comportamento di una Un toolkit che permetta
Esistono rallentamenti. GUI; per fare ciò, vengono lo sviluppo di GUI multi-
fondamentalmente tre usate solamente le piattaforma, deve
strategie differenti adatte La strategia di API primitive grafiche di base, implementare una
allo scopo e prendono il emulation (letteralmente offerte da ciascuna strategia per
nome di “API layering”, emulazione della API), piattaforma, quali ad nascondere al
“API emulation” e “GUI consiste nell’emulare le esempio le funzioni per programmatore i
emulation”. API di un unico sistema su tracciare un punto, una dettagli dovuti alle API
tutte le altre piattaforme. In linea, un cerchio. Il native del sistema
La strategia di API layering questo caso, non occorre vantaggio di questa operativo sottostante.
(letteralmente innestare uno strato soluzione è evidente, non
stratificazione delle API), software al di sopra delle si appesantisce
prevede la costruzione di API native per la l’applicazione con uno
una nuova API fornita da piattaforma emulata, strato software aggiuntivo
uno strato software che occorre bensì inserirla per e neppure si devono
viene localizzato al di le altre piattaforme, uniformare tutte le API dei
sopra della API nativa. I diverse da quella usata sistemi su cui garantire la
vantaggi offerti da questa come riferimento. Benché portabilità.
soluzione sono una questa soluzione sembri
relativa semplicità di risolvere i problemi di
programmazione ed una portabilità, in realtà è
totale conformità con il difficile da ottenere, in
6. KDE e Qt
La potenza di Qt è di parole, se è valido il detto intenzioni degli
P. Sereno fondamentale importanza che “buoni programmatori sviluppatori di KDE e
per KDE, il desktop scrivono buoni malgrado il fatto che il
Fondatore di alcuni progetti environment di Linux è programmi” ed “eccellenti codice di KDE in sè fosse
open source basati sul Qt stato infatti costruito su programmatori rubano software libero, KDE non
framework, collabora con questa libreria. Il ricco codice eccellente”, allora poteva mai fare parte di
riviste specializzate e segue da repertorio di widgets Qt e KDE offrono le un sistema operativo
diversi anni l’evoluzione del (oggetti grafici di migliori condizioni per completamente libero”.
free software
interfaccia utente) e la questo “furto”, grazie alla Per arginare il pericolo
in Italia.
quantità di classi offerte filosofia open source ed derivante dall’affermarsi di
da questo toolkit (ad alla licenza GPL. un desktop environment
esempio la gestione dei non-libero, sulla sua
caratteri UNICODE, Trolls contro Gnomi piattaforma libera
interfacciamento verso La storia vissuta dai GNU/Linux, Stallman si
database, gestione programmatori KDE non è mosse attivamente per
protocolli TCP ed UDP) ha stata però molto facile cercare un’antagonista al
fornito agli sviluppatori all’inizio, il fatto di usare le progetto KDE e lo trovò
KDE un substrato librerie Qt che nella nel progetto GNOME, il
“intellettuale” su cui versione 1.1 non erano GNU desktop. Dall’anno
basare l’intera architettura disponibili con licenza della sua fondazione,
software. GPL, scatenò le ire della 1997, sino al 1999 (e
comunità open source, in ancor oggi), GNOME fu
La filosofia di Qt è stata particolare Richard una spina nel fianco per i
ripresa ed estesa, sino a Stallman si scagliò in programmatori KDE; chi
consentire a KDE di offrire prima persona contro il ha seguito le vicende dei
Scarica guide e tutorial classi, oggetti grafici e loro impiego. Celebri due progetti, ricorda
gratuiti di plugins agli sviluppatori infatti sono le sue parole ancora le battaglie sui
programmazione grafica applicativi. Oggi, uno sul tema KDE e Qt: newsgroup a colpi di post
open source! sviluppatore Qt/KDE ha a e le reciproche accuse di
Le trovi all'indirizzo: disposizione una “Il disegno di KDE è stato “filoeuropeismo” (KDE) e
collezione di componenti basato su un errore “filoamericanismo”
www.sereno-online.com/site
software estremamente fondamentale: l’uso della (GNOME).
ricca e performante per libreria Qt (che allora era
sviluppare la sua software non-libero).
applicazione. In altre Malgrado le buone