如何从QTableView中获取数据?

时间:2012-03-15 10:06:45

标签: qt4 pyqt

我的QTableView小部件有QtGui.QTableView.SelectRows行为。

  1. 如何获取当前选定的行?
  2. 我可以从该行获取特定列,而不仅仅是行的ID吗?
  3. 感谢。

2 个答案:

答案 0 :(得分:1)

QTableView继承来自QAbstractItemView的信号。要获取当前选定的行,您必须将插槽连接到

之一
 void activated ( const QModelIndex & index )
 void clicked ( const QModelIndex & index )
 void pressed ( const QModelIndex& index )

EDIT1: QModelIndex有方法row()column(),可以确切地知道单击/选择了哪个单元格。

 self.table.clicked.connect(self.clickedSlot)
 def clickedSlot(self,index):
      print "Column is " + str(index.column())
      print "Row is " + str(index.row())

如果您不熟悉Qt / PyQt,您可能想看看如何使用信号和插槽。

EDIT2:如果您想从小部件本身获取索引

self.table.selectionModel.currentIndex()

答案 1 :(得分:0)

您可以尝试以下方法:

for index in sorted(self.tableView.selectionModel().selectedRows()):
        row=index.row()
     data=self.model_of_table.data(self.model_of_table.index(row, index_of_cell_in_row)