我用
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>
答案 0 :(得分:3)
对于QListView
,您应该连接到signals的selection model之一。要更改当前项目和选择,请执行以下操作:
self.image_list.selectionModel().currentChanged.connect(self.on_row_changed)
...
def on_row_changed(self, current, previous):
print('Row %d selected' % current.row())