Tutorial su wxPython

Marco Barisione


Capitolo 7

Finestre che contengono altri controlli




wxPanel

Spesso il compito di alcune finestre è praticamente solo quello di contenere altre finestre e di raggrupparle. Fra queste finestre c'è wxPanel che offre poche funzionalità ma è molto utile soprattutto insieme a wxFrame (o a classi derivate come wxMiniFrame).
Invece con le finestre di dialogo wxPanel generalmente non serve (se non per raggrupare contolli in alcuni casi) in quanto wxDialog si comporta come se contenesse già un wxPanel.

01: frame1 = wxFrame(None, -1, "Frame senza wxPanel")
02: frame2 = wxFrame(None, -1, "Frame con wxPanel")
03: frame2_panel = wxPanel(frame2, -1)
04: for frame, contenitore in ((frame1, frame1), (frame2, frame2_panel)):
05:     # Crea 7 pulsanti con posizione casuale.
06:     for i in range(7):
07:         # random.randrange(min, max) ritorna un numero casuale
08:         # compreso fra min e max.
09:         x = random.randrange(0, 200)
10:         y = random.randrange(0, 200)
11:         wxButton(contenitore, -1, "Pulsante numero %d" % i,
12:                  pos=(x, y))
13:     frame.Show(1)
14: self.SetTopWindow(frame2)
15: return 1
esempio 7.1 [visualizza esempio completo]

L'esempio mostra due frame, uno con un wxPanel ed uno senza. Alla linea 3 viene creata un'istanza di wxPanel con i consueti parametri (finestra genitore e id).


immagine 7.1

Come si può vedere nell'immagine 7.1 i due frame sono identici eccetto per lo sfondo del frame senza wxPanel.
torna ad inizio pagina