Tutorial su wxPython

Marco Barisione


Capitolo 3

Una semplice finestra




import

Prima di tutto è necessario importare i moduli di wxPython, qundi in tutti i file che ne fanno uso avremo:

01: from wxPython.wx import *
esempio 3.1 [visualizza esempio completo]

D'ora in poi negli esempi seguenti l'importazione di wxPython verrà tralasciata ma è sempre necessaria.
torna ad inizio pagina



wxApp e wxFrame

Ogni applicazione deve creare una classe derivata da wxApp che rappresenta l'applicazione stessa:

01: class MiaApp(wxApp):
02:     def OnInit(self):
03:         frame = wxFrame(None, -1, "Ciao mondo")
04:         # viene mostrata la finestra
05:         frame.Show(1)
06:         # imposta la finestra principale
07:         self.SetTopWindow(frame)
08:         return 1
09:
10: # crea un'istanza della classe MiaApp
11: app = MiaApp(0)
12: app.MainLoop()
esempio 3.2 [visualizza esempio completo]

Ora analizziamo il codice:
1 - Viene creata una classe MiaApp derivata da wxApp
2 - La funzione OnInit deve essere ridefinita da ogni classe derivata da wxApp e contiene il codice di inizializzazione. Accetta solo l'argomento self.
3 - Viene creata una finestra (frame), il costruttore accetta sette parametri ma solo tre sono necessari, il primo (parent) specifica la finestra genitore (nel nostro caso "None" essendo la finestra principale), il secondo è l'id della finestra di cui spiegheremo meglio il significato più avanti, infine il terzo parametro è il titolo della finestra.
8 - Ritorna 1 per indicare che l'inizializzazione del programma è andata a buon fine, se viene invece ritornato 0 l'applicazione termina.
12 - Inizia il loop dei messaggi mandati dal sistema operativo, la funzione ritorna solo quando l'applicazione deve terminare.



immagine 3.1

Il codice appena visto crea semplicemente una finestra vuota come quella in immagine 3.1.
torna ad inizio pagina



wxWindow

wxWindow è la base per tutte le classi che rappresentano i diversi tipi di finestra (frame, pulsanti, controlli di testo), è già stato quindi usata indirettamente nell'esempio precedente; è importante comunque parlarne più diffusamente perché offre numerosi metodi utili in comune fra diversi tipi di oggetto e di cui quindi non se ne parlerà più negli esempi successivi.
wxWindow è raramente usato direttamente e quindi non è indispensabile conoscere i dettagli sul costruttore, ma può essere utile parlarne qui perché i costruttori di altre classi accettano parametri simili, gli argomenti sono: Metodi utili di wxWindow sono:
torna ad inizio pagina