How to get selected qTableView row values (all column)

Viewed 801

How to get the all column data for the selected row of a qtableView. For a single index like first column I can get the data. But I want all datas in an array. How to append those selected data into an array!

def selectRow(self):
        index = self.tableView.selectionModel().selectedIndexes()[0]
        id = int(self.tableView_AccInfo.model().data(index))
        print ("index : " + str(id))

For example:

header --> a b c d e f
row0   --> 1 2 3 4 5 6

I want, data[1,2,3,4,5,6]

1 Answers

If you want to get the complete rows of the selected elements then a possible solution is:

  • Get the rows
  • Iterate over the columns of those rows
rows = {index.row() for index in self.tableView.selectionModel().selectedIndexes()}
output = []
for row in rows:
    row_data = []
    for column in range(self.tableView.model().columnCount()):
        index = self.tableView.model().index(row, column)
        row_data.append(index.data())
    output.append(row_data)
print(output)
Related