Il packing per inserire più controlli in una finestra

Nell’esempio precedente, al momento in cui abbiamo inserito il pulsante all’interno della finestra, questo ha occupato subito l’intera area della finestra, incollandosi ai bordi e non lasciando posto ad altri controlli. Come fare dunque a inserire più controlli all’interno di una finestra? La tecnica usata è l’impacchettamento detto altrimenti packing.

Il sistema è molto semplice: all’interno della finestra si inserisce un primo contenitore di oggetti, come una scatola con degli scomparti da riempire con altri controlli. All’interno di questi scomparti possono essere inseriti controlli classici oppure altri contenitori. Questa tecnica è detta packing, in quanto i controlli sono impacchettati uno dentro l’altro e disposti fino a produrre l’organizzazione desiderata.

All’inizio potrà sembrare un sistema molto difficile ma dopo poco diventa semplice da utilizzare e Glade fornisce una mano concreta per questo, che con le sole PyGTK può essere molto impegnativo. Apriamo quindi subito Glade, un nuovo progetto con una finestra iniziale.

La sezione dei controlli Contenitori raggruppa tutti i controlli capaci di contenere al loro interno altri componenti. I principali sono i primi quattro sulla prima riga, gli altri sono usati più raramente o non consentono l’inserimento di più controlli al loro interno. Riassumiamo le loro caratteristiche prima di vederne alcuni all’opera:

  • Casella orizzontale (GtkHBox): dispone i controlli in caselle disposte orizzontalmente, tutte della medesima altezza
  • Casella verticale (GtkVBox): dispone i controlli in caselle disposte verticalmente, tutte della stessa larghezza
  • Tabella (GtkTable): combina caselle orizzontali e verticali, creando una tabella divisa in righe e colonne
  • Notebook (GtkNotebook): divide l’area in schede

Iniziamo la presentazione col primo, la casella orizzontale; inseriamone una nella finestra vuota e osserviamo cosa accade.

Verrà richiesto il numero di elementi in cui suddividere la casella e saranno gli spazi liberi che potranno essere usati per inserire altri controlli. Nella figura sopra abbiamo scelto 3 elementi e in quei tre spazi potranno essere inseriti 3 pulsanti o altri controlli.

A sua volta ogni elemento di un contenitore potrà essere utilizzato per inserirvi altri contenitori, in questa figura all’interno del primo elemento della casella orizzontale di prima è stata inserita una casella verticale che suddividerà la prima cella in altre 3 celle verticali.

Eliminando entrambe le caselle e inserendo invece una tabella all’interno della finestra verrà richiesto il numero di righe e di colonne della tabella, come quella mostrata nella figura sopra.

Notebook invece è un controllo che suddivide l’area in schede, ciascuna delle quali conterrà un’area libera da popolare con altri controlli. Le schede possono essere personalizzate sia nel nome che nella posizione, vedremo più avanti come affrontare la questione.

L’area di lavoro di una finestra di un’applicazione può essere formata combinando questi 4 contenitori principali, dividendo l’area libera in altre sottoaree, anche con contenitori differenti. Affronteremo più avanti i problemi del packing, l’utilizzo e la divisione degli spazi.

About these ads

1 Response to “Il packing per inserire più controlli in una finestra”


  1. 1 psych99 gennaio 28, 2010 alle 10:21 pm

    Grande .. finalmente ho capito cos’è sto packaging!Grazie davvero!


Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...




Indice degli argomenti


Iscriviti

Ricevi al tuo indirizzo email tutti i nuovi post del sito.

%d blogger cliccano Mi Piace per questo: