<div dir="ltr"><div><div><br></div>A possible solution would be to forego the use of an actual selection in favor of your own custom coloring of "relevant" fields. It doesn't seem to me that a 10000 item "selection" is much use anyway, as the first click in a cell will clear it. Don't you simply want to visually distinguish certain values?<br><br></div>The key to that would be in the data() method, which is called for the visible cells for many "roles" other than the DisplayRole. See [1]. For example, when called for the Qt.BackgroundRole, it could return a Pink QBrush when the value of a cell meets your criteria and a White one otherwise. Or, when called for the Qt.FontRole, it could return a QFont with bold or italic in one case, and normal text in the other.<br><div><br><div><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
Date: Mon, 8 Aug 2016 23:26:47 +0100<br>
From: Thomas Robitaille <<a href="mailto:thomas.robitaille@gmail.com">thomas.robitaille@gmail.com</a>><br>
To: <a href="mailto:pyqt@riverbankcomputing.com">pyqt@riverbankcomputing.com</a><br>
Subject: [PyQt] Selecting many rows in a QTableView<br>
<br>
class DataTableModel(QtCore.<wbr>QAbstractTableModel):<br>
</blockquote><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">    def data(self, index, role):<br>
        if not index.isValid():<br>
            return None<br>
        if role == Qt.DisplayRole:<br>
            return "({0},{1})".format(index.row()<wbr>, index.column())<br><br></blockquote><div><br>[1] <a href="http://doc.qt.io/qt-5/qt.html#ItemDataRole-enum">http://doc.qt.io/qt-5/qt.html#ItemDataRole-enum</a> <br></div></div></div></div></div></div>