在QListView中选择项目的信号是什么?

时间:2014-04-09 12:58:09

标签: python pyqt4 selection signals-slots qlistview

我用

QObject.connect(self.image_list, QtCore.SIGNAL('clicked(QModelIndex)'), self.on_row_changed)

最初,但我发现当我按下右键时,即使项目为灰色(不是焦点),也会调用on_row_changed。我应该连接哪个信号?

我搜索qt4.8的文档,信号activated (const QModelIndex &index )void indexesMoved (const QModelIndexList &indexes)不起作用。

所以,当我尝试根据焦点项目做一些动作时,当我使用鼠标或向上/向下箭头移动单选项目时,我应该使用哪个信号,将正确调用回调?< / p>

1 个答案:

答案 0 :(得分:3)

对于QListView,您应该连接到signalsselection model之一。要更改当前项目和选择,请执行以下操作:

    self.image_list.selectionModel().currentChanged.connect(self.on_row_changed)
    ...

    def on_row_changed(self, current, previous):
        print('Row %d selected' % current.row())