Sto provando a connettermi al segnale SelectChanged di un QTreeView usando PyQt. Ho fatto questo in passato (per un QTableView) e ho avuto successo. Ma ora non riesco a ottenere codice simile per funzionare.PyQt QTreeView: tentare di connettersi al segnale selectionChanged
Nell'esempio di codice seguente, mi collego correttamente ai segnali espansi e compressi, ma non ai segnali selezionati o attivati. Qualcuno potrebbe dirmi cosa sto facendo di sbagliato? Grazie.
from PyQt4 import QtGui
from PyQt4 import QtCore
################################################################################
class ShaderDefTreeView(QtGui.QTreeView):
"""
Overrides the QTreeView to handle keypress events.
"""
#---------------------------------------------------------------------------
def __init__(self, parent=None):
"""
Constructor for the ShaderDefTreeView class.
"""
super(ShaderDefTreeView, self).__init__(parent)
#listen to the selectionChanged signal
print "Connecting"
#whenever the selection changes, let the data model know
self.connect(self,
QtCore.SIGNAL("selectionChanged(QItemSelection&, QItemSelection&)"),
self.store_current_selection)
self.connect(self, QtCore.SIGNAL("activated(const QModelIndex &)"),
self.activated)
self.connect(self, QtCore.SIGNAL("collapsed(const QModelIndex &)"),
self.collapsed)
self.connect(self, QtCore.SIGNAL("expanded(const QModelIndex &)"),
self.expanded)
#---------------------------------------------------------------------------
def store_current_selection(self, newSelection, oldSelection):
print "changed"
#self.model().selection_changed(newSelection)
#---------------------------------------------------------------------------
def expanded(self, newSelection):
print "expanded"
#---------------------------------------------------------------------------
def collapsed(self, newSelection):
print "collapsed"
#---------------------------------------------------------------------------
def activated(self, newSelection):
print "activated"