目前,如果用户单击仅部分可见的单元格,则窗口会自动向上滚动,以便完全显示单元格。有没有办法阻止这样做呢?谢谢
答案 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}}的成员函数。