" ... avete presente lo schemino degli insiemi che si intersecano? ...navigheremo soprattutto nella zona tratteggiata...a volte spostandoci, a seconda della corrente, anche nell'uno o nell'altro emisfero...senza allontanarci troppo però ..."

martedì 10 agosto 2010

Hello World: l'evoluzione della specie !! Parte 4 ... dispositivi mobili - codice sorgente

Con l'esempio di programmazione di oggi svilupperemo una piccola applicazione che gira sulle seguenti piattaforme:

- Linux Desktop
- Maemo 5 su N900

-------------------------
Licenza Creative Commons
Questa opera è pubblicata sotto una 
Licenza Creative Commons.
Tutto quello che viene pubblicato in questo Blog è rilasciato sotto licenza Creative Commons Attribuzione-Non commerciale-Condividi allo stesso modo 2.5 Italia

ovvero, in sintesi:
- puoi liberamente modificare, distribuire, esporre in pubblico tutto ciò che è presente in questo Blog
- non puoi usare i contenuti del Blog per scopi commerciali
- devi citare l'autore: Franco Babbo - bytewalker su egoprogrammo.blogspot.com
- devi condividerlo allo stesso modo.
per altre informazioni:
------------------------------

Tenete presente, comunque, che sebbene il codice sia praticamente lo stesso e funzioni perfettamente in entrambi gli ambienti, questo esempio è ottimizzato per il dispositivo mobile e non per il desktop.

Si tratta del caro vecchio Hello World con l'aggiunta di un pulsante, tanto per fare un passetto avanti nella programmazione.

Una avvertenza: dato che questo blog è attualmente ancora neonato non ho la benchè minima idea di quale sia o sarà la tipologia di lettori (anche se qualcuno ha già mostrato interesse e di questo ringranzio molto).
Darò quindi per scontate, per il momento, parecchie cose, come se chi mi sta leggendo abbia tutto, o quasi, lo skill necessario con i tool di sviluppo che usati.
Tuttavia, dato che alcuni di tali tool possono non essere comunissimi (Mad Developer ad esempio) mi rendo conto che questo può disorientare.
Quindi se volete realizzare questo programma e avete dei dubbi NON ESITATE A CHIEDERE (non siate timidi come recita il gadget :-)

Se date un'occhiata ai post precedenti troverete tutti i particolari sull'ambiente operativo e sui tool di sviluppo usati.

>Lanciate Qt Creator SDK.

Fate:

> File -> New File or Project -> Mobile Qt Application -> OK
> Name: scrivete HelloWorld
> Setup Target: Selezionate tutto
> Class Information: scegliete
Class Name = HelloClass
Base Class = QWidget

A questo punto:

- è stata creata una nuova directory HelloMaemo
- sono stati creati quattro file:

helloworld.h        (interfaccia della classe HelloClass)
helloworld.cpp     (implementazione della classe HelloClass)
main.cpp            (applicazione della classe HelloClass)
helloworld.ui       (la nostra form)

date un occhiata al filesystem così vi rendete conto meglio.

Siete entrati nell'ambiente di svilppo. Conto molto sulla vostra capacità di trovare gli oggetti cui farò riferimento senza che mi dilunghi troppo in descrizioni. Si trovano nelle solite barre dei menù e pannelli vari del vostro SDK.

> Aprite la cartella Forms
> Doppio click su hellohelloworld.ui

Vedrete una form vuota. Se date un'occhiata alle proprietà (barra a destra) noterete che è 800x480. Dato che corrisponde proprio alla risoluzione del terminale mobile può sembrare ottimale ma non è così perché questa impostazione non tiene conto della barra del titolo. Comunque di questo parleremo un'altra volta, per ora lasciate così (semmai fate delle prove per divertirvi a vedere cosa succede ma sappiate che ci sono delle misure precise di cui tenere conto).

Trascinando i vari oggetti (da sinistra a destra sulla form):

> Aggiungete un pulsante (pushButton)
> Aggiungete una casella di testo (lineEdit)

Nella barra laterale sinistra, in basso, noterete l'iconcina di un computer. Cliccando avrete l'opportunità di selezionare il target della compilazioe scegliendo tra Desktop, Simulatore, Dispositivo Remoto

> Selezionate il target "Qt Simulator"
> Fate Build -> Run qmake

E' stata creata una cartella HelloWorld-Build-Simulator con dentro il Makefile (potete controllare con esplora risorse o quel che è).

> Fate Build -> Build project HelloWorld

Sono stati aggiunti i file:

HelloWorld                 (eseguibile)
ui_hellohelloworld.h    (interfaccia oggetti form)
main.o                      (file oggetto dell'applicazione)
helloclass.o               (flie oggetto della classe)
moc_helloclass.o       (fle oggetto del moc "meta object compiler)
moc_helloclass.cpp    (codice del moc)

date un occhiata per sincerarvene.

> Provate a dare il run (tasto verde play)

Il simulatore viene lanciato (bello vero?) e dentro potrete ammirare la vostra form. Ovviamente se premete il pulsante non succede un accidente. Infatti dobbiamo aggiungere le SLOT (è così che Qt chiama le care vecchie funzioni).

> Nel file helloclass.h aggiungete le due seguenti righe di codice:

private slots:
void on_pushButton_clicked();

subito prima della parentesi graffa di chiusura.


> Nel file helloclass.cpp aggiungete il seguente codice


void HelloClass:n_pushButton_clicked()
{
     ui->lineEdit->setText("Hello World !!");
}

in fondo al file, dopo tutto quello che vedete.

> Lanciate con il tasto play il simulatore.
> Premete il pulsante e nella casellina di testo stavolt apparirà "Hello World !!"

> Tornate alla form, se volete, ed aggiustate le dimensioni degli oggetti a vosto piacimento.

Adeso viene il bello.

> Accendete l'interfaccia Wi-Fi del N900 e del computer se non lo è già.
> Lanciate Mad Developer


> Impostate la password in Qt

> In Qt selezionate come target Maemo Device
> Lanciate la compilazione ed il Run Cliccando play

> La vostra applicazione sta girando su N900 !


Alla prossima ....



Nessun commento:

Posta un commento