I'm using QTableView with a QAbstractTableModel. I'm updating my QAbstractTableModel quite frequently from an outside source (not the QTableView). The updates to the table model only occur on a single row and when complete I send the dataChanged signal with a begin index and end index indicating that just the row is updated. The code basically looks like the following:

int row = 5;
int columnCount = 10;

QModelIndex begin = index(row, 0);
QModelIndex end = index(row, columnCount);
emit dataChanged(begin, end);

For some reason whenever I emit this signal the TableView calls my TableModel's data method for every visible row. I believe this is causing a considerable hit to performance. Is this the usual behavior for this situation or is there a way to have the TableView only request updates for the index range that was sent in the dataChanged signal.

Thanks,
Bryan