17 dicembre 2010

[wxPython] Aggiungiamo un bottone ed un evento.

Dopo aver creato la nostra prima finestra, adesso è il momento di popolarla ed iniziamo col metterci un bel bottone.

Lasciamo lo stesso codice creato in precedenza, ma aggiungiamo (ovviamente) qualcosa.
  1. import wx
  2. class Main(wx.Frame):
  3.    def __init__(self,main,id):
  4.       wx.Frame.__init__(self,main,id,'Main',size=(600,400))
  5.       panel=wx.Panel(self)
  6.       button=wx.Button(panel,-1,label="Messaggio",pos=(10,10),size=(100,30))
  7. if __name__== "__main__":
  8.    app=wx.PySimpleApp()
  9.    frame=Main(None,-1)
  10.    frame.Show()
  11.    app.MainLoop()
Ma che abbiamo fatto in più di prima? Vedete la riga in blu, la 6? Essa aggiunge all'applicazione un bottone (wx.Button). Tra parentesi troviamo l'oggetto da cui dipende (panel), l'id (-1, quindi non esplicitato), la descrizione che comparirà sul pulsante (Messaggio) la sua posizione (10 px da destra e 10 px dall'alto) e la grandezza del pulsante stesso.

Eseguiamo il tutto e questo è il risultato.


Ma adesso che abbiamo creato un bottone non vogliamo fargli fare qualcosa? Ovvio che sì e quindi aggiungiamo un evento.

  1. import wx
  2. class Main(wx.Frame):
  3.    def __init__(self,main,id):
  4.       wx.Frame.__init__(self,main,id,'Main',size=(600,400))
  5.       panel=wx.Panel(self)
  6.       button=wx.Button(panel,-1,label="Messaggio",pos=(10,10),size=(100,30))
  7.        self.Bind(wx.EVT_BUTTON,self.closewindow, button)
  8.    def closewindow(self,event):
  9.       self.Destroy()
  10. if __name__== "__main__":
  11.    app=wx.PySimpleApp()
  12.    frame=Main(None,-1)
  13.    frame.Show()
  14.    app.MainLoop()
Le nuove righe introducono alcuni concetti nuovi. La riga 7 introduce un evento bottone (wx.EVT_BUTTON), che viene scatenato alla pressione del tasto quindi. Si seguito la funzione (closewindow) viene associata al nome del bottone (button).

Eseguendo l'applicativo e cliccando sul tasto si chiuderà la finestra.

Raccomandandomi fino all'esasperazione dell'importanza dell'indentazione del codice, ci si risente alla prossima.

Tondo è bello...

Tondo è bello...