PDA

View Full Version : [Python] Problema gestione eventi con wx.grid


Qwertid
06-08-2009, 18:10
Ciao a tutti!
Ho un piccolo problema da risolvere circa la gestione degli eventi di una tabella nella libreria grafica wx.Python.

Ne ho creata una di 22 righe per 6 colonne e l’ultima colonna è interamente booleana (ovvero in essa, per ogni riga c’è una casellina che dovrebbe assomigliare ad una checkbox). Per chiarezza scrivo il codice dell’inizializzazione:

self.grid.CreateGrid(22,6)
self.grid.SetColFormatBool(5)

A tale tabella ho associato l’evento e il metodo:


self.grid.Bind(wx.grid.EVT_GRID_CELL_LEFT_CLICK, self.OnMouseClickLeft)

che mi permettono di gestire la colonna booleana come fosse composta realmente da checkbox (quindi cliccando sulla cella riesco ad ottenere l’effetto checked/unchecked e tutti i cambiamenti che volevo associare a tale azione).

Il mio problema è che adesso ho un piccolo malfunzionamento con le rimanenti colonne in quanto, cliccandoci con il tasto sinistro (anche due volte) è come se l’editor non le selezionasse per la modifica del valore contenuto (infatti resta fermo sulla cella in alto a sinistra) e l’unico modo per spostarmi tra le celle è farlo con la tastiera (una volta spostatomi sulla cella, riesco ad editarla normalmente).

Come posso fare affinchè riesca a mantenere l’evento wx.grid.EVT_GRID_CELL_LEFT_CLICK sull’ultima colonna e ovviare al problema esposto? Si può fare in modo che l’evento che ho indicato sopra interessi solo e soltanto l’ultima colonna della tabella?

Grazie a tutti!

Qwertid
07-08-2009, 17:03
Mi autorispondo così che magari ciò possa essere d'aiuto a qualcuno nel futuro..

Nel metodo associato all'evento avevo dimenticato l'event.Skip() nel caso in cui si verifichi su una colonna diversa da quella booleana... :p