近期在使用QTableView时发现,当选中行不在窗口可见范围内时,调用selectRow后,选中行仍然是不可见的,但一般情况下,我们都是想要选中后就可见的,于是研究了以下使用,有两种方案:
方案1
先调用selectRow(),行数为不是实际要选中的行号,再调用selectRow,参数为实际要选中的行号即可。即先选中其他行,再选中正确的行数即可。
下面展示一些 内联代码片
。
this->selectRow(0); //先选中第一行,再选中正确的行数,确保选中后该行可见(否则若此组的第一个参数不在显示范围内,则查找选中后,仍然不可见,需手动滑动滚动条使可见)
this->selectRow(40); //40为实际要选中的行号
方案2
在调用selectRow后,再调用scrollTo()跳转到选中行
下面展示一些 内联代码片
。
this->selectRow(40);
this->scrollTo(this->model()->index(40, 0));