For a QListView
, you should connect to one of the signals of its selection model. To get changes to the current item as well as the selection, do:
self.image_list.selectionModel().currentChanged.connect(self.on_row_changed)
...
def on_row_changed(self, current, previous):
print('Row %d selected' % current.row())