Ok, herausgefunden (meist zufällig).
Da ich die Verbindungen in der init machte, aber nur das Modell für diese QTreeView später, gab es kein gültiges selectionModel vorhanden.
Um hatte, um es Arbeit zu machen ich zwei Änderungen vor:
1) Der Emissions Objekt geändert werden musste die QTreeView des selectionModel zu sein. Ich weiß nicht, warum, aber einige (selten) Beispiele auf der Bahn vorgeschlagen, dass dies der Fall sein könnte
und
2) Ich hatte die setModel Methode des QTreeView so außer Kraft zu setzen, dass er die übergeordnete Klasse ruft 'setModel Methode und macht danach die Verbindungen.
So der neue Code sieht wie folgt aus:
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)
#---------------------------------------------------------------------------
def setModel(self, model):
super(ShaderDefTreeView, self).setModel(model)
self.connect(self.selectionModel(),
QtCore.SIGNAL("selectionChanged(QItemSelection, QItemSelection)"),
self.store_current_selection)
#---------------------------------------------------------------------------
def store_current_selection(self, newSelection, oldSelection):
print "changed"