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!
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!