QTableView scroll to new added row

Ashot picture Ashot · Sep 30, 2013 · Viewed 11.6k times · Source

To add new rows to model I am calling beginInsertRows and endInsertRows(). How to configure the view to scroll to new added rows and select it. I can do it by sending some signals but maybe Qt has standard way for it.

Answer

Pavel Strakhov picture Pavel Strakhov · Sep 30, 2013

Create a slot in your form class and connect it to the model's rowsInserted signal. The slot should contain the following:

void My_form::model_rows_inserted(const QModelIndex & parent, int start, int end) {
  view->scrollTo(model->index(start, 0));
}

Note that you cannot (and should not) do this from your model. The model should know nothing about the view.