Se trovi utile il mio blog sostienimi con una piccola donazione. GRAZIE

12 – I Layout

<– INDIETROAVANTI–>

Siccome i programmatori in ambiente Windows non sono soliti utilizzare questo widget , anche perchè non tutti i linguaggi di programmazione in windows lo implementano, vediamo di cosa si tratta prendendone la definizione direttamente dal sito delle QT :

Il sistema di layout Qt fornisce un modo semplice e potente per organizzare automaticamente i widget figli all’interno di un widget per garantire che facciano un buon uso dello spazio disponibile.

Quindi, per quanto sopra riportato, i Layout sono una serie di widget che si occupano di ridimensionare automaticamente i wigdet in essi contenuti in modo che occupino in modo ottimale lo spazio.

Se impararete ad usare questi widget non vi capiterà mai più di sviluppare un’applicazione e al momento dell’installazione su di un computer con diversa risoluzione video trovarvi con finestre enormi e non completamente visualizzabili oppure con microscopici oggetti nell’angolo in alto a sinistra della finestra della vostra applicazione .

In pvbrowser non tutti i widget di layout sono implementati ed il loro uso non è molto agevole perchè dovrete scrivervi il codice completamente a mano .

Vi assicuro però che la fatica di capirne il funzionamento verrà ampiamente ripagato dai benefici ottenuti .

I widget di layout implementati in pvbrowser sono : Vbox, Hbox e GridBox .

La gestione dei layout in pvbrowser viene gestita aprendo l’apposita finestra.

Questa finestra è ragginungibile scegliendo dal menù contestuale la voce “edit layout” quando si è in editazione grafica di una maschera.

La finestra in questione è quella che riporto sotto :

In questa stessa pagina vengono riportati alcuni esempi di uso dei layout che sono utili come promemoria.

Ora proviamo a riprendere in mano il Tutorial2 (scaricabile nelle pagine precedenti) e mentre facciamo un pò di esperimenti vediamo di capire il funzionamento dei layout .

Come prima cosa nella maschera 1 aggiungiamo sul fondo della stessa un pulsante in una posizione qualsiasi ottenendo qualcosa del genere :

Ora apriamo la finestra per la gestione dei layout e nella parte superiore dove c’è scritto “edit constructors below” scriviamo quanto segue :

pvHLayoutHbox(p,ID_MAIN_WIDGET,-1);

Questa funzione creerà un layout orizzontale che , siccome come padre è stato scelto ” -1 ” (ovvero non è stato scelto) sarà figlio della maschera (finestra) e sarà quindi il layout principale .

Ora subito sotto la prima linea che abbiamo inserito aggiungiamo questa :

pvQLayoutVbox(p,layout1,ID_MAIN_WIDGET);

Questa linea crea un layout verticale che si chiama layout1 ed è figlio del layout ID_MAIN_WIDGET .

A questo punto abbiamo creato i layout e ora dobbiamo inserirli e popolarli.

Per fare questo scriveremo nella parte bassa indicata con “edit layout below:” della finestra di gestione dei layout qualto segue :

pvAddWidgetOrLayout(p,ID_MAIN_WIDGET,layout1,-1,-1);
pvAddWidgetOrLayout(p,layout1,obj1,-1,-1);
pvAddWidgetOrLayout(p,layout1,obj2,-1,-1);

Nella prima riga andiamo ad inserire il layout1 all’interno del layout principale ID_MAIN_WIDGET e poi nelle successive righe inseriamo i due widget (area di disegno e pulsante) dentro al layout1.

Quando avvieremo l’applicazione i widget all’interno della finestra si ridimensionaranno automaticamente ed il tutto con sole quattro righe di codice.

Questo sarà il risultato :

Se modifichiamo la riga di creazione del layouy1 trasformandola in un HBOX il risultato sarà tutt’altro :

Potete scaricare il codice di questo tutorial dal seguente link : Tutorial2A.zip

Continua ..

<– INDIETROAVANTI–>