C++ E QT, BINOMIO PERFETTO

Documenti analoghi
INTRODUZIONE AL FRAMEWORK QT

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

CONTENT MANAGEMENT SYSTEM

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

FONDAMENTI di INFORMATICA L. Mezzalira

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. Implementazione del File System. Struttura del File System. Implementazione

BDCC : Guida rapida all utilizzo

Introduzione alle tecnologie informatiche. Strumenti mentali per il futuro

Scheda di Notifica Manuale d'uso

Laboratorio di Informatica

ECDL MODULO 1 Concetti di base della tecnologia dell informazione. Prof. Michele Barcellona

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

INFORMATICA 1 L. Mezzalira

Il Sistema Operativo (1)

Fondamenti di Informatica. Docenti: Prof. Luisa Gargano Prof. Adele Rescigno BENVENUTI!

I MODULI Q.A.T. PANORAMICA. La soluzione modulare di gestione del Sistema Qualità Aziendale

Guida Rapida di Syncronize Backup

MDaemon GroupWare Per offrire agli utenti le funzionalità di condivisione calendario, rubrica e gli altri oggetti di MS Outlook

Come funziona il WWW. Architettura client-server. Web: client-server. Il protocollo

visual composer soluzione integrata per la produzione automatica di documentazione tecnica Product sheet

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

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

BDX 3D-EDITOR (autore: Marco Bedulli) Scopo del software. Caratteristiche fondamentali. Linguaggi utilizzati. Navigazione 3D

InfiXor. il programma facile e versatile per preventivi veloci e completi. il software di preventivazione per produttori e rivenditori di infissi

DOCUMENTO ESERCITAZIONE ONENOTE. Utilizzare Microsoft Offi ce OneNote 2003: esercitazione rapida

DATABASE.

TIMESHARK: Uno strumento per la visualizzazione e l analisi delle supertimelines. Relatore: Federico Grattirio

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

La gestione di un calcolatore. Sistemi Operativi primo modulo Introduzione. Sistema operativo (2) Sistema operativo (1)

LA SOLUZIONE. EVOLUTION, con la E LA TECNOLOGIA TRASPARENTE IL SOFTWARE INVISIBILE INVISIBILE ANCHE NEL PREZZO R.O.I. IMMEDIATO OFFERTA IN PROVA

Il documento rappresenta una guida sintetica per descrivere sia la filosofia che il modulo software per l implementazione dei workflow in recuper@2.

Assistenza Clienti Gestione dei ticket in ambiente multi utenza. Software di CRM vtiger

Registratori di Cassa

Sommario. 1. Cos è SecureDrive Caratteristiche Privacy dei dati: SecureVault... 4

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. D. Talia - UNICAL. Sistemi Operativi 9.1

Mac Application Manager 1.3 (SOLO PER TIGER)

Breve introduzione curata da Alessandro Benedetti. Struts2-Introduzione e breve guida

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

I Software di riferimento per stilare un E-Portfolio

LEZIONE 3. Il pannello di amministrazione di Drupal, configurazione del sito

Soluzioni per l'integrazione e l'accesso alle informazioni. Visus RAD. Andrea Rocchini

Lezione 1 Introduzione

Informatica. Teoria. L architettura dei PC Storia dell informatica Periferiche Reti - Software. Marco Brama

AREA MUSICA E TECNOLOGIA

UNIVERSITA DEGLI STUDI DI BRESCIA Facoltà di Ingegneria

Caratteristiche generali

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

Corso di Sistemi di Elaborazione delle informazioni

Visual basic base Lezione 01. L'ambiente di sviluppo

Virtualizzazione VirtualBox su Host Windows

Creare diagrammi di Gantt con Visio 2003

SIEBEL CRM ON DEMAND MARKETING

Il Sistema Operativo. C. Marrocco. Università degli Studi di Cassino

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

Dispensa di database Access

VIRTUALIZZAZIONE. Docente: Marco Sechi Modulo 1

Uso delle basi di dati DBMS. Cos è un database. DataBase. Esempi di database

Architetture Informatiche. Dal Mainframe al Personal Computer

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

Portale Suap SPORVIC2 Manuale Prerequisiti tecnici di sistema

Terza lezione: Directory e File system di Linux

SISTEMI OPERATIVI. Prof. Enrico Terrone A. S: 2008/09

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

Limiti della gestione tradizionale degli archivi. Prof. Francesco Accarino IIS Altiero Spinelli

MDaemon GroupWare Per offrire agli utenti le funzionalità di condivisione calendario, rubrica e gli altri oggetti di OutLook

MANUALE D USO DELLA PIATTAFORMA ITCMS

I Codici Documento consentono di classificare le informazioni e di organizzare in modo logico l archiviazione dei file.

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

FTP. Appunti a cura del prof. ing. Mario Catalano

Addition, tutto in un unica soluzione

Sistemi operativi. Esempi di sistemi operativi

CAD-CAM and FURNITURE Solution _GOLD

Sistema di Gestione dei Contenuti Multimediali

Introduzione a Dev-C++

IL SOFTWARE. Giada Agostinacchio Classe 2^ Beat ISIS G.Meroni Lissone Anno Scolastico 2007/2008

Simple & Efficient.

Transcript:

C++ E QT, BINOMIO PERFETTO Luca Ottaviano Software developer, Develer 1

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

WE'RE HIRING! https://www.develer.com/jobs/ Oppure sono a disposizione al banco in fondo 3

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

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 5

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 6

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 7

PECULIARITA' DI QT Alcune funzionalità offerte da Qt Comunicazione tramite signal/slot Gestione semplificata della memoria Introspezione a runtime 8

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

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) 10

SIGNAL/SLOT 11

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 12

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 13

INTERNAZIONALIZZAZIONE (I18N) Tante sfide da risolvere Encoding dei caratteri Testo BiDi e meccanismi di input Convenzioni per numeri, date... Qt supporta la maggior parte delle lingue esistenti Supporto per il workflow di traduzione 14

FLUSSO PER LA TRADUZIONE.CPP.TS 15

SISTEMA DI RISORSE Risorsa: file binario richiesto dall'applicazione Immagini Dati di vario tipo File di configurazione Il deploy su molteplici piattaforme diverse è un problema 16

SISTEMA DI RISORSE 17

SISTEMA DI RISORSE Il sistema di risorse risolve il problema del deploy File inseriti all'interno dell'eseguibile finale Procedura integrata nel sistema di build Il binario di porta dietro i file di cui ha bisogno 18

CONTAINER CLASSES Sono classi contenitori simili ai contenitori STL, ma ottimizzati per espandere in meno codice possibile Hanno una API un po' più comoda dei rispettivi contenitori STL Sono contenitori Copy-On-Write I dati sono contenuti in memoria esterna I dati vengono copiati quando c'è un accesso non const 19

CONTAINER CLASSES Il COW rende Qt/C++ quasi un linguaggio di scripting Qstring( Hello world ).split().isempty(); file.readall().split( \n ).mid(3); 20

IMMAGINI Qt dispone di molte funzionalità per la manipolazione di immagini Utilizzabili anche per programmi che non fanno uso di finestre Molti formati già supportati out-of-the-box Espandibile tramite sistema a plugin 21

MANIPOLAZIONE DI IMMAGINI Ogni immagine può essere scalata, ruotata etc. 22

MANIPOLAZIONE DI IMMAGINI Si possono comporre immagini usando l'api 2D fornita dal QPainter API molto ricca e completa Permette di aggiungere testo, comporre più immagini, disegnare tramite primitive grafiche etc. 23

COMPOSIZIONE DI IMMAGINI 24

QT CONCURRENT API di alto livello per eseguire lavori multi-thread Nessun problema di sincronizzazione Scala automaticamente su tutti i core disponibili Operazioni supportate: Map Reduce Filter 25

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