QTableView滚动到新添加的行

Ash*_*hot 7 c++ qt row qtableview model-view

要向模型添加新行,我正在调用beginInsertRowsendInsertRows().如何配置视图以滚动到新添加的行并选择它.我可以通过发送一些信号来做到这一点,但也许Qt有标准的方式.

Pav*_*hov 13

在表单类中创建一个插槽并将其连接到模型的rowsInserted信号.插槽应包含以下内容:

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

请注意,您不能(也不应该)从模型中执行此操作.模型应该对视图一无所知.


小智 7

view->scrollToBottom(); 是更好的解决方案,因为如果使用scrollTo方法,在某些情况下新行不是完全可见的

  • 如果在 QTableView 上进行了一些排序,这将不起作用。 (2认同)