如何禁用QTableWidget滚动到选定的单元格?

时间:2011-08-25 18:21:25

标签: qt qtablewidget

目前,如果用户单击仅部分可见的单元格,则窗口会自动向上滚动,以便完全显示单元格。有没有办法阻止这样做呢?谢谢

2 个答案:

答案 0 :(得分:6)

您可以使用以下方法轻松禁用此行为:

ui->tableWidget->setAutoScroll(false);

alexisdm的答案是处理另一个问题。假设您逐步向表中追加新行,并且希望保持当前的垂直滚动位置。我正在处理第二个问题,而alexisdm的回答似乎很有希望。

答案 1 :(得分:1)

滚动由QAbstractItemView完成,scrollTo使用索引提示EnsureVisible调用虚函数scrollTo。您无法阻止呼叫,因为它是通过专用计时器完成的,但您可以更改void TableWidget::scrollTo(const QModelIndex &index, ScrollHint hint) { if(hint == QAbstractItemView::EnsureVisible) return; QTableWidget::scrollTo(index, hint); } 功能的功能:

QTableWidget::scrollTo

要仍然能够手动滚动到某个项目,您可以编写另一个会调用{{1}}的成员函数。

相关问题