SlideShare una empresa de Scribd logo
1 de 6
Descargar para leer sin conexión
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.
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
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.
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à
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
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

Más contenido relacionado

La actualidad más candente

Qt Lezione4 Parte2: creare un custom widget plugin per Qt Designer
Qt Lezione4 Parte2: creare un custom widget plugin per Qt DesignerQt Lezione4 Parte2: creare un custom widget plugin per Qt Designer
Qt Lezione4 Parte2: creare un custom widget plugin per Qt DesignerPaolo Sereno
 
Sviluppo di App con Qt Quick: un esempio di model-view-delegate
Sviluppo di App con Qt Quick: un esempio di model-view-delegateSviluppo di App con Qt Quick: un esempio di model-view-delegate
Sviluppo di App con Qt Quick: un esempio di model-view-delegatePaolo Sereno
 
Installazione Eclipse Cdt Per Qt
Installazione Eclipse Cdt Per QtInstallazione Eclipse Cdt Per Qt
Installazione Eclipse Cdt Per QtPaolo Sereno
 
GUI in Gtk+ con Glade & Anjuta
GUI in Gtk+ con Glade & AnjutaGUI in Gtk+ con Glade & Anjuta
GUI in Gtk+ con Glade & Anjutadelfinostefano
 
Chakra 2012.9 rec
Chakra 2012.9 recChakra 2012.9 rec
Chakra 2012.9 reckdekda
 
Introduzione alla programmazione Android - Android@tulug
Introduzione alla programmazione Android - Android@tulugIntroduzione alla programmazione Android - Android@tulug
Introduzione alla programmazione Android - Android@tulugIvan Gualandri
 
Qt Platform Abstraction
Qt Platform AbstractionQt Platform Abstraction
Qt Platform AbstractionQT-day
 
C(99) gtk 01 - introduzione e finestre
C(99) gtk   01 - introduzione e finestreC(99) gtk   01 - introduzione e finestre
C(99) gtk 01 - introduzione e finestreMaurizio Carboni
 
C(99) gtk 03 - le immagini
C(99) gtk   03 - le immaginiC(99) gtk   03 - le immagini
C(99) gtk 03 - le immaginiMaurizio Carboni
 
Qt Creator: the secret weapon of any c++ programmer
Qt Creator: the secret weapon of any c++ programmerQt Creator: the secret weapon of any c++ programmer
Qt Creator: the secret weapon of any c++ programmerDeveler S.r.l.
 
Introduzione ad angular 7/8
Introduzione ad angular 7/8Introduzione ad angular 7/8
Introduzione ad angular 7/8Valerio Radice
 
Qt roadmap: the future of Qt
Qt roadmap: the future of QtQt roadmap: the future of Qt
Qt roadmap: the future of QtDeveler S.r.l.
 
C(99) gtk 02 - disporre gli oggetti
C(99) gtk   02 - disporre gli oggettiC(99) gtk   02 - disporre gli oggetti
C(99) gtk 02 - disporre gli oggettiMaurizio Carboni
 
C(99) gtk 04 - label,button e entry
C(99) gtk   04 - label,button e entryC(99) gtk   04 - label,button e entry
C(99) gtk 04 - label,button e entryMaurizio Carboni
 

La actualidad más candente (16)

Qt Lezione6
Qt Lezione6Qt Lezione6
Qt Lezione6
 
Qt Lezione4 Parte2: creare un custom widget plugin per Qt Designer
Qt Lezione4 Parte2: creare un custom widget plugin per Qt DesignerQt Lezione4 Parte2: creare un custom widget plugin per Qt Designer
Qt Lezione4 Parte2: creare un custom widget plugin per Qt Designer
 
Sviluppo di App con Qt Quick: un esempio di model-view-delegate
Sviluppo di App con Qt Quick: un esempio di model-view-delegateSviluppo di App con Qt Quick: un esempio di model-view-delegate
Sviluppo di App con Qt Quick: un esempio di model-view-delegate
 
Installazione Eclipse Cdt Per Qt
Installazione Eclipse Cdt Per QtInstallazione Eclipse Cdt Per Qt
Installazione Eclipse Cdt Per Qt
 
GUI in Gtk+ con Glade & Anjuta
GUI in Gtk+ con Glade & AnjutaGUI in Gtk+ con Glade & Anjuta
GUI in Gtk+ con Glade & Anjuta
 
Chakra 2012.9 rec
Chakra 2012.9 recChakra 2012.9 rec
Chakra 2012.9 rec
 
Introduzione alla programmazione Android - Android@tulug
Introduzione alla programmazione Android - Android@tulugIntroduzione alla programmazione Android - Android@tulug
Introduzione alla programmazione Android - Android@tulug
 
Qt Platform Abstraction
Qt Platform AbstractionQt Platform Abstraction
Qt Platform Abstraction
 
C(99) gtk 01 - introduzione e finestre
C(99) gtk   01 - introduzione e finestreC(99) gtk   01 - introduzione e finestre
C(99) gtk 01 - introduzione e finestre
 
C(99) gtk 03 - le immagini
C(99) gtk   03 - le immaginiC(99) gtk   03 - le immagini
C(99) gtk 03 - le immagini
 
Qt Creator: the secret weapon of any c++ programmer
Qt Creator: the secret weapon of any c++ programmerQt Creator: the secret weapon of any c++ programmer
Qt Creator: the secret weapon of any c++ programmer
 
Introduzione a Git
Introduzione a GitIntroduzione a Git
Introduzione a Git
 
Introduzione ad angular 7/8
Introduzione ad angular 7/8Introduzione ad angular 7/8
Introduzione ad angular 7/8
 
Qt roadmap: the future of Qt
Qt roadmap: the future of QtQt roadmap: the future of Qt
Qt roadmap: the future of Qt
 
C(99) gtk 02 - disporre gli oggetti
C(99) gtk   02 - disporre gli oggettiC(99) gtk   02 - disporre gli oggetti
C(99) gtk 02 - disporre gli oggetti
 
C(99) gtk 04 - label,button e entry
C(99) gtk   04 - label,button e entryC(99) gtk   04 - label,button e entry
C(99) gtk 04 - label,button e entry
 

Similar a Che cosa è il Qt Framework

Elio Tondo - Linux In Azienda
Elio Tondo - Linux In AziendaElio Tondo - Linux In Azienda
Elio Tondo - Linux In AziendaBetter Software
 
Meego Italian Day 2011 - Francesco Baldassarri (1)
Meego Italian Day 2011 - Francesco Baldassarri (1)Meego Italian Day 2011 - Francesco Baldassarri (1)
Meego Italian Day 2011 - Francesco Baldassarri (1)Francesco Baldassarri
 
Linux nelle PMI
Linux nelle PMILinux nelle PMI
Linux nelle PMIvittoriomz
 
Corso Linux
Corso LinuxCorso Linux
Corso Linuxagnelloe
 
Develer - Qt Embedded - Introduzione
Develer - Qt Embedded - Introduzione Develer - Qt Embedded - Introduzione
Develer - Qt Embedded - Introduzione Develer S.r.l.
 
Presentazione Kubuntu
Presentazione KubuntuPresentazione Kubuntu
Presentazione KubuntuAbaco
 
Beni Culturali 2.1 Introduzione Os
Beni Culturali 2.1 Introduzione OsBeni Culturali 2.1 Introduzione Os
Beni Culturali 2.1 Introduzione OsCaterina Policaro
 
Open-source: storia di una rivoluzione silenziosa
Open-source: storia di una rivoluzione silenziosaOpen-source: storia di una rivoluzione silenziosa
Open-source: storia di una rivoluzione silenziosaaccatagliato
 
Free software & Open Source (FLOSS)
Free software & Open Source (FLOSS)Free software & Open Source (FLOSS)
Free software & Open Source (FLOSS)Piergiorgio Borgogno
 
Software libero, pensiero libero
Software libero, pensiero liberoSoftware libero, pensiero libero
Software libero, pensiero liberoGiuseppe Gortan
 

Similar a Che cosa è il Qt Framework (20)

Elio Tondo - Linux In Azienda
Elio Tondo - Linux In AziendaElio Tondo - Linux In Azienda
Elio Tondo - Linux In Azienda
 
Introduzione a .Net Core
Introduzione a .Net CoreIntroduzione a .Net Core
Introduzione a .Net Core
 
Meego Italian Day 2011 - Francesco Baldassarri (1)
Meego Italian Day 2011 - Francesco Baldassarri (1)Meego Italian Day 2011 - Francesco Baldassarri (1)
Meego Italian Day 2011 - Francesco Baldassarri (1)
 
Linux nelle PMI
Linux nelle PMILinux nelle PMI
Linux nelle PMI
 
Ubuntu Linux
Ubuntu LinuxUbuntu Linux
Ubuntu Linux
 
Ubuntu Linux - Corso Base
Ubuntu Linux - Corso BaseUbuntu Linux - Corso Base
Ubuntu Linux - Corso Base
 
Reportage Delphi Day 2012
Reportage Delphi Day 2012Reportage Delphi Day 2012
Reportage Delphi Day 2012
 
Corso Linux
Corso LinuxCorso Linux
Corso Linux
 
Develer - Qt Embedded - Introduzione
Develer - Qt Embedded - Introduzione Develer - Qt Embedded - Introduzione
Develer - Qt Embedded - Introduzione
 
Develer - Qt Embedded - Intro
Develer - Qt Embedded - IntroDeveler - Qt Embedded - Intro
Develer - Qt Embedded - Intro
 
Presentazione Kubuntu
Presentazione KubuntuPresentazione Kubuntu
Presentazione Kubuntu
 
Beni Culturali 2.1 Introduzione Os
Beni Culturali 2.1 Introduzione OsBeni Culturali 2.1 Introduzione Os
Beni Culturali 2.1 Introduzione Os
 
Open-source: storia di una rivoluzione silenziosa
Open-source: storia di una rivoluzione silenziosaOpen-source: storia di una rivoluzione silenziosa
Open-source: storia di una rivoluzione silenziosa
 
Free software & Open Source (FLOSS)
Free software & Open Source (FLOSS)Free software & Open Source (FLOSS)
Free software & Open Source (FLOSS)
 
prova
provaprova
prova
 
Software libero, pensiero libero
Software libero, pensiero liberoSoftware libero, pensiero libero
Software libero, pensiero libero
 
Distro linux
Distro linuxDistro linux
Distro linux
 
Foss ieri e oggi
Foss ieri e oggiFoss ieri e oggi
Foss ieri e oggi
 
Conferenza Pymaemo
Conferenza PymaemoConferenza Pymaemo
Conferenza Pymaemo
 
Applicazioni open source
Applicazioni open sourceApplicazioni open source
Applicazioni open source
 

Che cosa è il Qt Framework

  • 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