2010-12-01 5 views

Répondre

3

En supposant que vous utilisez un QTableView ou QTableWidget pour votre table, vous pouvez recevoir un signal Qt chaque fois que l'ensemble des cellules sélectionnées a changé en faisant ceci:

connect(theTable.selectionModel(), SIGNAL(selectionChanged(const QItemSelection &, const QItemSelection &)), this, SLOT(SelectionWasChanged(const QItemSelection &, const QItemSelection &))); 

Notez que cela fonctionnera si la sélection a été changé via la souris, le clavier ou d'autres moyens. Si vous avez vraiment besoin du rappel uniquement lorsque la sélection a été effectuée via un QMouseEvent, vous pouvez probablement implémenter cela en remplaçant QTableView :: mousePressEvent() et/ou QTableView :: mouseReleaseEvent() dans une sous-classe et en définissant un indicateur sur true avant d'appeler à la superclasse (et en redéfinissant false par la suite) et en vérifiant le drapeau dans votre slot SelectionWasChanged().

Questions connexes