Qt by Examples LINUX DAY 2016 http://www.lugman.org https://www.qt.io/

Slides:



Advertisements
Presentazioni simili
Virtualizzazione nell’INFN Andrea Chierici 11 Dicembre 2008.
Advertisements

KDE4: tutte le novità Flavio Castelli 25 Ottobre 2008 BgLUG Bergamo Linux User Group.
OpenOffice.org Calc Corso di Formazione all'uso Dott. Alessandro Ronchi.
A.s Mauro Sabella. Play Store e gestione delle applicazioni Il fulcro del sitema operativo Android è il Play Store, dal quale possiamo installare.
LTSP (Linux Terminal Server Project) GNU/Linux ed Workshop di Enrico Teotti powered with Gentoo Linux Linux Day LUG Mantova.
1 14 marzo 2006 sommaruga andrea Fondazione Ordine Ingegneri di Milano VPN: Reti Private Virtuali VPN: RETI PRIVATE VIRTUALI LE POSSIBILITA' DI ACCESSO.
Corso gratuito di Linux. Linux User Group Mantova
1 Università della Tuscia - Facoltà di Scienze Politiche. Informatica 2 - a.a Prof. Francesco Donini Active Server Pages.
Disegni di Ricerca e Analisi dei Dati in Psicologia.
Effetti grafici con compiz-fusion Come ottenere un desktop accattivante su UBUNTU.
Orientamento. Il Kernel Il Kernel è un programma scritto in linguaggio vicino all'hardware che ha il compito di fornire ai processi in esecuzione sul.
Presentazione della piattaforma e - learning MOODLE a cura di Davide Afretti Bologna, 24 aprile 2013.
E’ costituita da due blocchi:  Interfaccia di rete  Blocco di simulazione L’ interfaccia di rete fornisce il collegamento elettrico con la rete sotto.
Gestione delle configurazioni Configuration management (CM) E` un processo che controlla le modifiche fatte a un sistema e gestisce le diverse versioni.
Programmare “per gioco” SCRATCH Lo programmerò. Programmerò solo per lei.
Gruppo Alpini Rivoli sezione Torino
Corso di Elementi di Informatica
Ereditarietà Uno dei principi della programmazione orientata agli oggetti (OOP) è il riuso Le classi dovrebbero essere progettate come componenti riutilizzabili.
Introduzione al backend di Sharepoint_P3
Sviluppo applicativo mobile per lettore barcode datalogic
PNSD - Modulo D1A marzo 2017 Piattaforme di e-­learning e cloud:​ installazione e gestione (azione #22) Prof. Rocca Marcello
IL SOFTWARE (FPwin 6.0).
Università degli Studi di Modena e Reggio Emilia
Lato Server - OMNIS Web Web Services.
EBSCO Discovery Service tutorial
Servizio Accreditamento, Sistemi informativi e Qualità della Didattica
ASLGest Gestione Alternanza Scuola/Lavoro
“Vivere insieme” – Lezione4
I Collegamenti in WORD Guglielmo Grisolia.
Guida introduttiva a Windows 7
Per informazioni: I PORTALI ELLY: INTRODUZIONE Per informazioni:
Accedere su Google e aprire l’App Drive cliccando sul pulsante :::
LA FORMAZIONE CHE VUOI !! INFORMATICA DI BASE
Commissione Calcolo e Reti
Commissione Calcolo e Reti
Terza Lezione → Navigare nel file System → parte 2
how to use Windows SharePoint Services
Il Binding Nicolò Sordoni.
AlmaEsami Demo Appelli e Prenotazioni – Versione 01
Excel 1 - Introduzione.
INDICO Parte 1 01/07/2018 Francesco Serafini.
Condivisione Documentazione Tecnica
SAS® OnDemand for Academics SAS Studio
analizzatore di protocollo
POWER POINT Il programma, all'interno del pacchetto Office della Microsoft, è quello dedicato alla realizzazione di audiovisivi. Consente di creare documenti.
MRF 2.0 EATON MRF 2.0 xComfort.
1.
Introduzione a PowerPoint
Access.
Outlook al meglio 5 modi per usare Firma con stile
Applicazioni MFC Gestione Avanzata
Il Nuovo Esame Di Stato Conclusivo del I ciclo d’Istruzione
Gestione Griglie nel Form Designer
Come personalizzare il sito Web online di Microsoft SharePoint
PowerPoint.
BootCaT: Bootstrapping Corpora and Terminology
Come utilizzare questo modello:
Derive 5 di Anna Retucci 02/01/2019
ADO Per gestire i database con tecnologia ASP si utilizzano strumenti ADO (ActiveX Data Objects): un'architettura che fornisce oggetti.
Lettura di input MIDI da Web MIDI API
Benvenuto in PowerPoint
Fondamenti di Informatica
Costruiamo il gioco Pimball
Usando strutture dati nella piattaforma Java Collections Framework
Come creare una presentazione
Docente: Sabato Bufano
ORGANIGRAMMA PERCHE’ ORGANIGRAMMA
Digitare qui i dettagli dell'evento
Ruolo: Redattore Corsi
Full Text Finder, panoramica di Publication Finder
Transcript della presentazione:

Qt by Examples LINUX DAY 2016 http://www.lugman.org https://www.qt.io/

Qt by Examples Argomenti QT: Qualche Caratteristica... Installazione QT Designer Creazione nuova applicazione C++ Aggiunta di un widget grafico e collegamento dei segnali Aggiunta di un oggetto non grafico come Timer, Server TCP, ecc Edit di un widget già esistente per funzioni come: Intercettare una KEY o una combinazione di tasti Drag&Drop nel programma e/o nel sistema operativo Creazione di un widget personalizzato Test del port del codice portato sotto Windows Link delle librerie in Linux e in Windows Esempio di un programma

QT: Qualche Caratteristica... Qt by Examples QT: Qualche Caratteristica... Programmazione C++ Compilatore GCC a 32 o 64 bit sotto Linux Cygwin a 32 bit o VC++ sotto Windows Definibile per ogni progetto Utilizzo di molte macro di preprocessore per estenderne le funzioni Sistema SIGNAL→SLOT per la gestione degli eventi (http://doc.qt.io/qt-5.9/signalsandslots.html) Signal/Slot vs Callbacks, Versatilià vs Velocità Single signal → Multiple Slots Elaborazione immediata e interruttiva oppure accodabile degli Slots Notifica di chi ha emesso il segnale (ovvero ciò che da versatilità, ma che rallenta) IDE Grafico integrato: QT Designer Widget & Object già pronti e possibilità di crearne di nuovi

Applicazione per PC: QT Widget Application Qt by Examples Applicazione per PC: QT Widget Application Nuovo → Qt Widget Application: Scegliere la directory e il nome dell'applicazione Scegliere compilatore e profilo (Debug o Release) Aggiungere i widget: Tree Widget → aggiunta degli item in modo fisso Text Edit: per uso successivo e come debug Push Button con il quale si ricostruirà il tree → collegare il segnale _on_click() Aggiungere le funzioni: Tree Widget → Drag&Drop di default Push Button per costruire il nuovo tree

Applicazione per PC: QT Widget Application Qt by Examples Applicazione per PC: QT Widget Application Test 1: Mostra come inserire un TreeWidget Creare gli item manualmente: si nota subito la struttura a tabella che è di fatto la stessa di un TableWidget. Ogni item ha una struttura ad array per riempire i vari campi della tabella, mentre ha una struttura a lista per riempire le sotto colonne. Abilitare i Drag&Drop del TreeWidget: il drag funziona solo con se stesso ora! Test 2: Creazione automatica del tree e dei sub-tree QTreeWidgetItem *item = new QtreeWidgetItem() crea l'item che andrà poi configurato QTreeWidgetItem *item = new QtreeWidgetItem(item) crea un'altro item che è però un sotto-item del precedente. QfileDialog::getExistingDirectory() permette di scegliere la directory richiamando il form dal sistema operativo

reimplementando la classe TreeWidget Qt by Examples Drag&Drop Il Drag&Drop viene abilitato su quasi tutti i Widget tramite l'interfaccia grafica. Le opzioni sono: dragEnable, dragDropOverwriteMode e dragDropMode. Viene poi definita l'azione di default a fronte di un drop (defaultDropAction) Per il TreeWidget, il D&D funziona solo su se stesso, mentre per l'editText è già abilitato e funziona anche tra programmi differenti Ma se si vuole che il D&D del TreeWidget porti con se informazioni “leggibili” anche da altre finestre o programmi, come fare per estendere queste funzionalità? reimplementando la classe TreeWidget

Reimplentare TreeWeedget per Drag&Drop Qt by Examples Reimplentare TreeWeedget per Drag&Drop http://doc.qt.io/qt-5.9/dnd.html Creare un nuovo file C++ e un file Header con la classe myTreeWidget: per farlo si può inserire una classe che direttamente compilerà il templete con tutte le classi da ereditare Definire nel file header le funzioni di Drag&Drop da reimplementare che sono già definite come virtuali. Il QTreeWidget verrà poi “promosso” a myTreeWidget

Reimplentare TreeWeedget per Drag&Drop Qt by Examples Reimplentare TreeWeedget per Drag&Drop http://doc.qt.io/qt-5.9/dnd.html È sufficiente reimplementare solo mousePressEvent per mantenere la massima prestazione. Come esempio in un caso viene copiato solo il testo, mentre nell'altro viene copiata l'icona

QWidget vs. QGraphicScene Qt by Examples Custom Widget http://doc.qt.io/qt-5/qwidget.html QWidget vs. QGraphicScene QGraphicScene viene normalmente utilizzato quando occorre creare e manipolare molti oggetti 2D. Se occorre gestire pochi e semplici “rettangoli”, QWidget risulta più semplice in quanto di solito basta solo gestire i Paint Event. Nell'esempio vedremo come: Inserire nella UI un widget generico Reimplementare la classe QWidget in particolare: paintEvent(QPaintEvent *) gestisce l'evento di ridisegno keyPressEvent(QKeyEvent *event) gestisce gli eventi da tastiera NOTA: perché gli eventi da tastiera o dal mouse vengano intercettati, occorre settare il widget perché possa accettare il focus. La via più semplice è settarlo via Designer