将QTableView、QTableWidget滚动到最后一行、最后一列

需求的提出:

       有时需要将QTableView、QTableWidget表格控件的垂直滚动条自动滚动到最后一行,如:利用QTableView、QTableWidget展示日志功能,在QTableView、QTableWidget中插入日志时,将离现在时间最近的日志插入到最后一行,即日志按日志时间离现在最久远到最近的顺序在QTableView、QTableWidget控件中从上到下排列展示。QTableView、QTableWidget展示日记记录时,垂直滚动条默认是在第0条日志位置的,不会自动滚动,当日志很多时,要手动拖动垂直滚动条到最下面才能看到最新的那条日志,这样很不方便。如何保证用户不需要手动操作垂直滚动条,就能自动看到离现在时间最近的日志记录?即让QTableView、QTableWidget能自动垂直滚动后一行?

      实现代码如下:

auto nLastRowIndex = ui->tableLogWnd->rowCount() - 1; // 最后一行的索引
auto lastModelIndex = ui->tableLogWnd->model()->index(lastRowIndex, 0);
ui->tableLogWnd->scrollTo(lastModelIndex); // 滚动到最后一行

其中ui->tableLogWnd为QTableView、QTableWidget的指针对象; nLastRowIndex为最后一行的行索引, 0表示第0列,对于垂直滚动滚动到哪一列无所谓。

扩展:

假如要将水平滚动条横向滚动到最后一列,则将上述代码的第2行的index函数的第2个参数改为最后一列的列索引即可。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值