如何在QTableView中检测doubleClick

Ian*_*Ian 7 qt qt4 pyqt

我正在使用PyQt来创建GUI应用程序.在从QTableView继承的视图中,需要检测用户双击行时选择的行.该表有排序,但没有编辑.

我该怎么做?

注意 - 尝试了doubleClicked(int)信号.它是由鼠标按钮发出的,而不是由数据单元发出的,所以它从未被触发过.:(

伊恩

lip*_*tto 17

我不明白 QTableView的doubleClicked信号具有签名

void doubleClicked ( const QModelIndex & index )
Run Code Online (Sandbox Code Playgroud)

如果连接该信号,则应获得正确的QModelIndex.

  • 它应该是'doubleClicked(QModelIndex)'. (4认同)

reg*_*odo 5

无需再使用SIGNAL:

self.your_table.doubleClicked.connect(your_function)
Run Code Online (Sandbox Code Playgroud)

"doubleClicked"继承自QAbstractItemView.


Vic*_*y T 5

获得模型索引后(来自上面弗兰克的评论),您可以使用它来查找双击了哪个单元格。

def slotDoubleClicked(self, mi):
    row = mi.row()
    column = mi.column()
Run Code Online (Sandbox Code Playgroud)

然后,您可以使用这些行和列值通过 table.setItem(row, column, newdata) 或其他表方法访问表