I'm using a QTableView object types. This object contains several online and I use this model:
class PaletteTableModel(QtCore.QAbstractTableModel):
def __init__(self,colors = [[]],headers =[],parent=None):
QtCore.QAbstractTableModel.__init__(self, parent)
self.__colors=colors
self._headers=headers
def rowCount(self,parent):
return len(self.__colors)
def columnCount(self,parent):
return 6
def headerData(self,section,orientation,role):
if role==QtCore.Qt.DisplayRole:
if orientation==QtCore.Qt.Horizontal:
return self._headers[section]
else:
return QtCore.QString("Credit %1").arg(section+1)
def data(self,index,role):
if role==QtCore.Qt.ToolTipRole:
row=index.row
return "Crédit"
if role==QtCore.Qt.EditRole:
row=index.row()
column=index.column()
return self.__colors[row][column]
if role==QtCore.Qt.DisplayRole:
row=index.row()
column=index.column()
value=self.__colors[row][column]
return value
def setData(self,index,value,role=QtCore.Qt.EditRole):
if role==QtCore.Qt.EditRole:
row =index.row()
column=index.column()
ch=(value)
self.__colors[row][column]=ch
self.dataChanged.emit(index,index)
return True
def flags(self, index):
return QtCore.Qt.ItemIsEnabled|QtCore.Qt.ItemIsEditable|QtCore.Qt.ItemIsSelectable
i want to retrieve the selected row of this tableView..anyone please help me and I want to have a python code if possible
In my case I use this action into a function that is called in doubleClicked event something like this: I add this line code into the init function
After that I declared doubleClicked_table like this:
In this case I show an id (integer) that it's in the first column (that's the reason the number 0 in selectedIndexes()[0])
One of the way's you can use to retrieve the selected rows is:
"tableView.selectedIndexes ()" returns a list-of-QModelIndex's
It depends what you mean by "the selected row". By default, a
QTableView
has its selection mode set toExtendedSelection
, and its selection behavior set toSelectItems
. This means that several individual table cells in different rows and columns can be selected at the same time. So which one should count as "the" selected row?The selection model of the table-view has a selectedRows method which will return a list of indexes for the rows where all the colums are selected (i.e. as it is when you click on the header section for a row):
However, if you want to get all the rows where at least one cell is selected, you can use the selectedIndexes method: