11 dicembre 2010

[wxPython] La nostra prima finestra

Amo Python e lo considero il miglior linguaggio di programmazione orientato agli oggetti mai inventato da essere umano (grazie Guido). Ci faccio davvero di tutto, se solo lo bevessi anche il caffè, ed anche se le mie applicazioni sono in maggioranza in ambito web e dintorni, spesso devo mettere delle interfacce utente ai vari programmini scritti e per questo ormai da un po' mi affido a wxPython, una libreria grafica multipiattaforma per dare un volto al codice Python.

In ambiente GNU/Linux installare Python e wxPython è davvero semplice, troviamo tutto dentro il Synaptic di turno e quindi non mi soffermo più di tanto su questo aspetto.

Non perdiamo tempo e partiamo subito creando il codice per visualizzare la nostra prima applicazione, una finestra che 600x400 px. che contiene... nulla.


01 import wx
02
03 class Main(wx.Frame):
04   def __init__(self,main,id):
05      wx.Frame.__init__(self,main,id,'Main',size=(600,400))
06      panel=wx.Panel(self)
07
08 if __name__== "__main__":
09   app=wx.PySimpleApp()
10   frame=Main(None,-1)
11   frame.Show()
13   app.MainLoop()


Andiamo a spiegare quanto scritto. Nella riga 01 importo la libreria grafica e nella riga 03 creo la classe Main che conterrà un wx.Frame che altro non è che la base della mia finestra.

Entriamo nella classe e creiamo alla riga 04 la prima funzione, chiamata __init__, che è il vero e proprio costruttore della nostra finestra. I parametri passati sono quelli per identificare a chi ci stiamo riferendo, in questo caso a se stesso (self), il nome e l'id del nostro contenitore. Fatto questo diamo i parametri al nostro wx.Frame ed alla riga 05 avviene proprio questo ed in aggiunta a quanto proposto prima aggiungo il titolo, 'Main', che comparirà nella barra del titolo e le dimensioni in pixel (size).

Non resta poi che creare il wx.Panel che conterrà tutti i nostri oggetti, siano pulsanti, immagini o quant'altro. Ora naturalmente contiene... il nulla. (riga 06).

Da 08 a 13 ci sono le righe che mettono in secuzione quanto creato e potete anche copiarle ed incollarle per tutte le applicazioni. Sappiate che app è il cuore della nostra applicazione e frame quello che si vede.

Ecco il risultato del codice proposto, che potete lanciare dal vostro editor (se lo permette) oppure con l'interprete Python con $ python nome_file.py.



Ci siamo, la nostra prima finestra in wxPython. Unica raccomandazione OCCHIO ALL'INDENTAZIONE DEL CODICE, potreste ammattirvi per trovare un errore che in realtà errore non è.

A presto.

Tondo è bello...

Tondo è bello...