INTRODUZIONE AL FRAMEWORK QT



Documenti analoghi
C++ E QT, BINOMIO PERFETTO

Luca Ottaviano. Ottimizzare applicazioni Qt Gui. Firenze, 8 luglio 2013

Gianni Valdambrini. Everywhere

Corso di Informatica

L i n u B e s t a Mario Di Raimondo

Mac Application Manager 1.3 (SOLO PER TIGER)

Il Sistema Operativo. Introduzione di programmi di utilità. Elementi di Informatica Docente: Giorgio Fumera

Laboratorio di Informatica

Definizione Parte del software che gestisce I programmi applicativi L interfaccia tra il calcolatore e i programmi applicativi Le funzionalità di base

Il software impiegato su un computer si distingue in: Sistema Operativo Compilatori per produrre programmi

Progetto ed implementazione di un tool di supporto allo sviluppo di applicazioni per Linux LibeRTOS

Introduzione al sistema operativo Il file system: file, directory,...

SERVER E VIRTUALIZZAZIONE. Windows Server Guida alle edizioni

IBM SPSS Statistics per Mac OS - Istruzioni di installazione (Licenza per sito)

Agent, porte, connettività e reti L agent di Kaseya utilizza la porta 5721 per comunicare con il server, ma che tipo di porta è?...

Oltre a fornire 7 GB di spazio di archiviazione nella cloud per documenti e immagini, SkyDrive ha altre funzionalità interessanti come:

sito web sito Internet

Introduzione ai Sistemi Operativi

Il Sistema Operativo (1)

Introduzione alla Progettazione per Componenti

filrbox Guida all uso dell interfaccia WEB Pag. 1 di 44

Introduzione alle tecnologie informatiche. Strumenti mentali per il futuro

Servizio Monitoraggio Energia via Web. CEAM CWS32-H01 Professional Web Platform

Esercitazione su Windows. Introduzione al calcolatore Introduzione a Windows

Come valutare e scegliere un Sistema Operativo Embedded

SOMMARIO. Programmazione orientata agli eventi. Programmazione orientata agli eventi. Programmazione orientata agli eventi

Architetture Informatiche. Dal Mainframe al Personal Computer

Architetture Informatiche. Dal Mainframe al Personal Computer

LSF. lab solution LOG SYSTEM FRAMEWORK. Pagina 1 di 14

CREA IL CATALOGO DEI TUOI PRODOTTI SU IPAD E IPHONE CON UN APP. ANZI, CON UPP!

Virtualizzazione VirtualBox su Host Windows

PRESENTAZIONE GESTIONALE AZIENDALE ADVANCED. Qsistemi Italia Telefono: Copyright 2015.

Corso App modulo Android. Antonio Gallo

Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione.

MANUALE DI UTILIZZO: INTRANET PROVINCIA DI POTENZA

IBM SPSS Statistics per Mac OS - Istruzioni di installazione (Licenza per utenti singoli)

Crea il catalogo dei tuoi prodotti su ipad e iphone con un App. Anzi, con upp!

Bagnetti Solutions. Soluzioni per il tuo Business. presenta. Bagnetti Solutions. Soluzioni per il tuo Business

15 - Packages. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

IBM SPSS Statistics per Windows - Istruzioni di installazione (Licenza per utenti singoli)

VIDEO COMUNICAZIONE VIA WEB: LA NOSTRA SOLUZIONE PER LEZIONI IN AULA VIRTUALE, SEMINARI E RIUNIONI A DISTANZA

Guida di Installazione GCC

PROTOTIPAZIONE DI UN TRADUTTORE DA SORGENTE PLC AD ASSEMBLY DI UNA MACCHINA VIRTUALE

Sistema di Gestione dei Contenuti Multimediali

uadro Soluzione software e hardware Per le rilevazione presenze Gestione Aziendale Fa quadrato attorno alla tua azienda

Sistemi Operativi MECCANISMI E POLITICHE DI PROTEZIONE. D. Talia - UNICAL. Sistemi Operativi 13.1

MECCANISMI E POLITICHE DI PROTEZIONE 13.1

IBM SPSS Statistics per Windows - Istruzioni di installazione (Licenza per sito)

DBMS e Linguaggi di programmazione nell'era di Internet

CONTENT MANAGEMENT SYSTEM

Manuale LiveBox WEB ADMIN.

SPSS Statistics per Windows - Istruzioni di installazione per (Licenza per utenti singoli)

IBM SPSS Statistics per Linux - Istruzioni di installazione (Licenza per sito)

WEB SEMINAR Dettaglio servizio

P A D. Private A Distanza.

P.D.M. (Product Document Management) Hierarchycal Tree

14 - Packages. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

Presidenza del Consiglio dei Ministri

Linguaggi dinamici. Giacomo Cabri Riccardo Martoglia

Microsoft Office XP. dott. ing. Angelo Carpenzano. La suite Microsoft Office XP

Luca Ottaviano. Everyday Git

Esercitazioni di PROGETTAZIONE DEL SOFTWARE A.A

Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011

IBM SPSS Statistics per Windows - Istruzioni di installazione (Licenza per utenti singoli)

D R O P B O X COS È DROPBOX:

GRAFICA TEMPLATE n. 006

Il Software. Il software del PC. Il BIOS

AscoCollabora Manuale Utente. Release 1.3

Panoramica Masergy Communicator

Capitolo 4 Pianificazione e Sviluppo di Web Part

Sistemi Operativi di Rete. Sistemi Operativi di rete. Sistemi Operativi di rete

Informatica. Prof. A. Longheu. Introduzione a Java

Provincia di Rimini Servizio Infrastrutture Territoriali e Tecnologiche Ufficio Sistemi Informativi. Scambio dati digitali Cittadini Provincia

MODULO 02. Iniziamo a usare il computer

Port Community System del Porto di Ravenna CONFIGURAZIONE

Nuova funzione di ricerca del sito WIKA.

Corso di Amministrazione di Reti A.A. 2002/2003

Strumenti per lo sviluppo e la gestione di Ontologie

TYPO3 in azione con l infrastruttura ZEND: affidabilità e sicurezza. Mauro Lorenzutti CTO di Webformat srl mauro.lorenzutti@webformat.

Fabrizio Caccavello APP NO GRAZIE, LUNGA VITA A RESPONSIVE DESIGN cfabry cfabry Fabrizio Caccavello

I Software di riferimento per stilare un E-Portfolio

GRAFICA TEMPLATE n. 012

Progettazione e Sviluppo dell Applicazione Web Share Mobile per Dispositivi Mobili Multipiattaforma. Elaborato di Laurea di: Marco Stanzani

L informatica INTRODUZIONE. L informatica. Tassonomia: criteri. È la disciplina scientifica che studia

lem logic enterprise manager

v Mistral ArchiWeb 2.0 Manuale utente

Sommario. Introduzione L ambiente di lavoro Configurazioni generali e la struttura di Joomla La struttura di Joomla...

Manuale d'uso del Connection Manager

Transcript:

INTRODUZIONE AL FRAMEWORK QT Luca Ottaviano Software developer, Develer

CHI SONO Team leader e sviluppatore embedded presso Develer Sviluppo con Qt da 8 anni, mi occupo principalmente di realizzare interfacce grafiche Contribuisco al progetto BeRTOS (www.bertos.org) Conferenze e formazione (interna ed esterna) 2

DEVELER IN BREVE Develer è un'azienda di sviluppo software e progettazione hardware che offre da anni servizi di alta qualità, utilizzando software libero e tecnologie Linux, Python e Qt.. Accanto alle attività di sviluppo, l'azienda si dedica all'organizzazione di eventi di risonanza nazionale ed internazionale quali: PyCon, Better Embedded, Qt Day. Alcuni dei nostri clienti: 3

AREE DI COMPETENZA Embedded real-time Linux & Android Desktop Cloud & Mobile Corsi 4

QT DAY 2015 150 partecipanti 30 interventi in italiano ed in inglese Speaker internazionali da aziende come Intel, Pelagicore, KDAB, Digia etc. Help desk e recruiting session Qt Quiz & Dinner Iniziativa Share and Win (condividi e vinci il Qt Quiz & Dinner) 5

WE'RE HIRING! https://develer.recruiterbox.com Consulta il nostro sito alla pagina Jobs 6

FRAMEWORK QT Framework per lo sviluppo di applicazioni multi piattaforma Basato principalmente attorno ad un modello di programmazione asincrona Fornisce un'api uniforme su tutte le piattaforme supportate 7

UN PO' DI STORIA Primo rilascio: 1995 Inizialmente disponibile solo per Linux/X11 e Windows. La versione Windows era solo commerciale Qt 3.0 (fine 2001): aggiunto supporto per Mac OS X Qt 4.0 (metà 2005): enorme riorganizzazione della struttura interna della libreria, ad oggi solo leggermente cambiata 8

MODULI QT Qt Core: contenitori e strutture dati, loop degli eventi, altre classi di utilità non collegate alla grafica Qt Gui: modulo base per i componenti grafici Qt Widgets: contiene le classi widget per creare intefacce grafiche a finestre Qt Network: funzionalità di rete 9

MODULI QT Qt WebKit: integrazione con il web engine WebKit Qt Xml: varie API (DOM, streaming) per l'accesso a file XML Qt Test: modulo per la scrittura di unit tests Qt Multimedia: funzionalità audio e video 10

PECULIARITA' DI QT Rispetto al C++ standard, Qt aggiunge: Introspezione a runtime (tramite MOC) Meccanismo di signal/slot Gestione semplificata della memoria dinamica 11

META OBJECT SYSTEM Fornisce: Il meccanismo di signal/slot per la comunicazione fra oggetti Introspezione Proprietà dinamiche 12

META OBJECT COMPILER (MOC) E' un tool che implementa il Meta Object System Analizza file header e genera file C++ che vanno compilati con l'applicazione Gestisce il linguaggio Qt/C++, che è il cuore delle funzionalità di Qt qmake genera automaticamente regole di build per il moc Attenzione! Solo le classi che derivano da QObject possono avere informazioni di tipo 13

META OBJECT COMPILER (MOC) class.cpp class.h File sotto controllo versione moc File generato moc_class.cpp compiler binary 14

PERCHE' MOC? Alcuni compilatori non supportano le funzionalità di metaprogrammazione richieste da Qt La sintassi conta: signal/slot è molto semplice da leggere Rende gli oggetti dinamici: si possono aggiungere e togliere property a runtime Viene usato anche per le traduzioni basate su contesto e per cast dinamici senza RTTI [1] http://woboq.com/blog/reflection-in-cpp-and-qt-moc.html [2] http://qt-project.org/doc/qt-4.8/templates.html 15

OBSERVER PATTERN Basato su uno o più oggetti (listener) che stanno in ascolto per modifiche ad un oggetto osservato (subject) 16

SIGNAL/SLOT Implementazione del pattern observer Aggiunge un po' di zucchero sintattico per rendere leggibile il codice connect(): connette un segnale ad uno slot (ossia un listener con un subject) emit signalname(): un oggetto può emettere un segnale (notifica) 17

SIGNAL/SLOT 18

GESTIONE DELLA MEMORIA Gestire la memoria in programmi complessi e altamente dinamici non è facile Qt fornisce un sistema agevole per gestire il lifetime degli oggetti I QObject sono organizzati in gerarchie ad albero 19

GERARCHIE DI QOBJECT Ogni QObject ha un parent e N children Quando il parent viene distrutto, si distruggono anche tutti gli oggetti nel sotto-albero associato Quando un figlio viene distrutto, il parent viene notificato Tutti i QObject con un parent vanno allocati sullo heap 20

UTILITA' 21

FATTORE CONVENIENZA Qt ha una API molto semplice da leggere e comoda da usare Implicit sharing della memoria e copy-on-write rendono Qt/C++ quasi un linguaggio di scripting Qstring( Hello world ).split().isempty(); file.readall().split( \n ).mid(3); 22

WIDGETS Qt deve la sua popolarità alla vasta libreria di widget pronti all'uso Esistono oggetti grafici per (quasi) tutte le applicazioni desktop: pulsanti, spinbox, combo box, text area, scroll bars, web views... Disponibili su tutte le piattaforme supportate (anche Android e ios) Tecnologia matura e documentazione eccellente 23

QT QUICK E' un insieme di tecnologie per lo sviluppo di interfacce fluide e dinamiche nate per superare il modello a box dei widget Linguaggio dichiarativo QML, estensione di Javascript Runtime per l'accesso a strutture dati C++ 24

QML IN AZIONE Rectangle { width: 200 height: 200 color: white Rectangle { width: parent.width height: parent.height / 2 color: red anchors.top: parent.top } } 25

Q&A? 26

CONTATTI telefono +39 055 39846 ext. 218 e-mail lottaviano@develer.com web develer.com/luca-ottaviano