class CustomColumnView(ColumnView):
    def __init__(self, *args, **kwargs):
        super(CustomColumnView, self).__init__(*args, **kwargs)
        self.activated.connect(self.onActivated)
    
    def keyPressEvent(self, event):
        super(CustomColumnView, self).keyPressEvent(event)
        index = self.selectedIndexes()[0]
        self.activated.emit(index)

    def onActivated(self, index):
        print index.data()

class CustomColumnView(QtGui.QColumnView):
    def __init__(self, *args, **kwargs):
        super(CustomColumnView, self).__init__(*args, **kwargs)

    def selectionChanged(self, selected, deselected):
        curindex = selected.indexes()[0]
        print 'current: ', curindex.data()
        try:
            previndex = deselected.indexes()[0]
            print 'previous: ',previndex.data()
        except IndexError:
            pass

Update custom.py