Voglio rilevare ogni volta che la selezione del mio gtk.TreeView
cambia e, quando lo fa, chiamare una funzione w/questa informazione. L'unico modo che ho trovato per farlo finora è quello di allegare a tutti questi segnali:Ottenere una nuova selezione in un GtkTreeView durante il segnale
...
self.sitterView.connect("cursor-changed", self.selectionChanged)
self.sitterView.connect("unselect-all", self.selectionChanged)
self.sitterView.connect("toggle-cursor-row", self.selectionChanged)
self.sitterView.connect("select-all", self.selectionChanged)
...
def selectionChanged(self, treeview):
foo(self.sitterView.get_selection().get_selected())
Tuttavia, sembra che la scelta che ricevo dalla richiamata è "in ritardo". Cioè, mostra la selezione dopo che la richiamata precedente era stata completata. Ad esempio, se continuo CTRL + clic su una riga, quando la riga passa da deselezionata a selezionata, a foo non viene assegnata alcuna selezione e quando la riga passa da selezionata a deselezionata, viene assegnata una selezione. Se chiamo get_selection().get_selected()
un secondo dopo, però, ottengo la selezione giusta. Qualche idea su come affrontare questo?
oh fantastico! non mi rendevo conto che l'oggetto di selezione non sarebbe cambiato e che aveva segnali propri. penso che sia quello che sto cercando. – Claudiu
funziona alla grande, ty di nuovo – Claudiu
C'è un modo per collegare questo segnale da Glade? – umpirsky