comment faire pour récupérer la ligne sélectionnée d'un QTableView?
Je suis en utilisant un QTableView types d'objet. Cet objet contient plusieurs en ligne et j'utilise ce modèle:
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
je veux récupérer la ligne sélectionnée de cette tableView..quelqu'un s'il vous plaît aidez-moi et je veux avoir un code python si possible
double possible de comment obtenir des lignes sélectionnées dans QTableView
OriginalL'auteur Haussem ChƏdly | 2014-03-22
Vous devez vous connecter pour publier un commentaire.
Cela dépend de ce que tu veux dire par "la ligne sélectionnée". Par défaut, un
QTableView
a son le mode de sélection ensemble deExtendedSelection
, et son le comportement de la sélection ensemble deSelectItems
. Cela signifie que plusieurs des cellules individuelles dans les différentes lignes et les colonnes peuvent être sélectionnées en même temps. Alors, qui doit compter comme "la" ligne sélectionnée?La modèle de sélection de la table-vue a un selectedRows méthode qui renvoie une liste d'index pour les lignes où toutes les colonnes sont sélectionnés (c'est à dire que lorsque vous cliquez sur l'en-tête de section pour une ligne):
Toutefois, si vous voulez obtenir toutes les lignes où au moins un cellule est sélectionnée, vous pouvez utiliser le selectedIndexes méthode:
OriginalL'auteur ekhumoro
Une des manières que vous pouvez utiliser pour récupérer les lignes sélectionnées est:
"tableView.selectedIndexes () retourne une liste de QModelIndex de
OriginalL'auteur thecreator232
Dans mon cas, j'ai utiliser cette action dans une fonction qui est appelée dans on double-clique sur l'événement quelque chose comme ceci:
- Je ajouter cette ligne de code dans la fonction init
Après que j'ai déclaré doubleClicked_table comme ceci:
Dans ce cas, je présenter une pièce d'identité (entier) que c'est dans la première colonne (c'est la raison pour laquelle le nombre de 0 dans selectedIndexes()[0])
OriginalL'auteur GSandro_Strongs