Qt Lezione0: uso del C++ per scrivere applicazioni Qt

3

Click here to load reader

description

Per essere sicuri che la nostra competenza di C++ sia sufficiente per la programmazione delle librerie Qt, facciamo un piccolo ripasso dei concetti principali

Transcript of Qt Lezione0: uso del C++ per scrivere applicazioni Qt

Page 1: Qt Lezione0: uso del C++ per scrivere applicazioni Qt

Mini Guide Qt

Autore P. Sereno http://www.sereno-online.com/site

Creare un custom widget plugin per Qt Designer

Premessa

Questa presentazione è rilasciata sotto Licenza Creative Commons: Attribution-NonCommercial-NoDerivativeWorks (http://creativecommons.org/licenses/by-nc-nd/3.0/deed.it).

Questo documento può quindi essere riprodotto senza violare nessuna legge, sia in versione elettronica, sia in versione cartacea, purché sia riprodotto integralmente in tutte le sue parti, compresa la pagina che contiene queste informazioni:

Versione originale scaricabile dal sitohttp://www.sereno-online.com/site/

Tutti i marchi riportati in questa pubblicazione appartengono ai rispettivi proprietari.

Link Utili

Qui di seguito riporto alcuni link utili per chi usa quotidianamente l’ambiente di sviluppo Qt e vuole confrontarsi con altri sviluppatore, utenti e semplici appassionati di questo toolkit gratuito ed open source.

Gruppo Programmatori Italiani Qt Software (GPIQt)

http://www.facebook.com/inbox/?ref=mb#/group.php?gid=81561439535

qt in Italy

http://qt-apps.org/groups/?id=17

qtitaliantranslators

http://gitorious.org/+qtitaliantranslators

Page 2: Qt Lezione0: uso del C++ per scrivere applicazioni Qt

Mini Guide Qt

Autore P. Sereno http://www.sereno-online.com/site

Uso del C++ per scrivere applicazioni QtPer essere sicuri che la nostra competenza di C++ sia sufficiente per la programmazione delle librerie Qt, facciamo un piccolo ripasso dei concetti principali che ci saranno utili nella lettura dei prossimi articoli; come detto, si tratta di una semplice rassegna di concetti che incontreremo nella nostra presentazione, questo non vuol essere un tutorial C++ esaustivo e dettagliato.

ClassiTrattandosi di una libreria di classi, Qt ne fa chiaramente uso.Il linguaggio C++ fornisce la possibilità di creare nuove classi nello stesso modo in cui permette di creare nuovi tipi, possiamo affermare che una classe è un nuovo tipo definito dall’utente. Gli oggetti di una classe vengono creati ed inizializzati mediante funzioni proprie dichiarate esplicitamente a questo scopo, tali funzioni prendono il nome di “costruttori”. Una funzione propria di una classe può anche avere lo scopo di cancellare ogni oggetto di una classe quando questa viene distrutta, questa seconda funzione prende il nome di “distruttore”.Una classe può quindi essere vista come un nuovo tipo, caratterizzato di informazioni interne, dette anche proprietà ed un insieme di operazioni ristretto e ben definito (metodi) per agire su di esse. In altre parole consideriamo una classe come una scatola nera in cui le operazioni su di essa avvengono solamente attraverso quell’insieme di operazioni.Un esempio tipico di classe può essere una tabella, che poi è l’elemento base su cui si costruiscono tutte le applicazioni di tipo “foglio elettronico”, essa presenterà almeno un’operazione (detto anche metodo) di inserimento, un metodo per verificare se un particolare elemento è stato inserito, alcuni metodi di ordinamento ed infine un metodo per eliminare uno o più elementi della tabella. La documentazione di corredo fornita con il toolkit Qt illustra i dettagli e fornisce inoltre alcuni esempi di utilizzo della classe tabella (QTable).Occorre inoltre ricordare che è sempre possibile ottenere l’indirizzo di un oggetto, questo permette quindi di applicare tutte le regole sui puntatori già viste nel linguaggio C. Qt fa largo uso di puntatori ad oggetti, in particolare nel passaggio di parametri.Per convenzione, i nomi delle classi Qt sono rappresentativi della classe stessa e iniziano tutti con la lettera Q maiuscola (ad esempio le classi QApplication, QPushButton).

Derivazione di classiUn concetto importante della programmazione ad oggetti, ovvero la derivazione di classi, sta alla base della programmazione Qt. Derivare una classe è un meccanismo semplice, flessibile ed efficiente per definirne una nuova, partendo da una esistente ed aggiungendo ad essa nuovi metodi e proprietà.Il concetto di derivazione di classi è ampiamente impiegato quando si vogliono realizzare custom widget, ossia controlli grafici che, partendo da quelli di base offerti da Qt, introducono nuove funzioni e comportamenti.

Metodi di accessoQt ne fa pesantemente uso. Non sono altro che metodi per accedere alle proprietà interne di un oggetto (metodi get) o impostarle (metodi set). Per convenzione i nomi dei metodi di accesso sono rappresentativi della funzione svolta ed iniziano con le parole get (dal verbo To Get, ovvero, ottenere) e set (dal verbo To Set, impostare). Un esempio che possiamo citare è il metodo setMainWindow, che è il primo metodo che impariamo ad usare nel nostro esempio di fine articolo.

Page 3: Qt Lezione0: uso del C++ per scrivere applicazioni Qt

Mini Guide Qt

Autore P. Sereno http://www.sereno-online.com/site

Funzioni virtualiLe funzioni virtuali consentono ai programmatori di dichiarare funzioni in una classe base che possano essere ridefinite in ogni classe derivata.Qt usa le funzioni virtuali per inviare notifica degli eventi, provenienti dal sistema di gestione delle finestre, agli oggetti che compongono l’interfaccia utente.

Overloading di operatoriQt esegue l’overload di alcuni operatori, ad esempio è possibile passare come parametro la classe QString (classe Qt incaricata di gestire le stringhe testuali), a tutte quelle funzioni che si aspettano come parametro const char*. In questo caso, esisterà un operatore che automaticamente convertirà il parametro di tipo QString nel parametro puntatore const char*.

Considerazioni finali

Questa è la terza lezione di un ciclo che verrà reso disponibile gratuitamente in Internet sul sito

http://www.sereno-online.com/site

A partire da questa lezione le cose si fanno più complicate, servirà quindi più tempo per capirle e per fare sul codice diverse prove.

Ogni vostro commento o richiesta di informazioni rappresenta un utile punto di partenza per nuove lezioni o miglioramenti.

Buon divertimento!

Paolo