python - 在QListView中选择一个项目的信号是什么?

标签 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)不工作。

那么,当我尝试根据焦点项执行某些操作时,我应该使用哪个信号,以便当我使用鼠标或向上/向下箭头移动单选项时,回调将被正确调用?

最佳答案

对于 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())

关于python - 在QListView中选择一个项目的信号是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22963306/

相关文章:

python - 纯python库读写jpeg格式

python - <_io.TextIOWrapper名称='canc.csv'模式='r'编码='cp1252'>错误在Python中意味着什么?

python - 单击 - 基于其他选项的提示的动态默认值

python - 如何在QTextEdit中插入和清除占位符

python - Qt QlineEdit 错误弹出窗口/气球消息

java - 使用选择排序对数组值进行排序时不期望输出

python - Matplotlib python 动画不显示线

qt - QGraphicsObject 上的 deleteLater 与 removeItem

java - 我怎样才能像左键单击一样右键单击 Java JList 的单元格来选择该单元格?

iphone - ios:选择确定下一个屏幕