【发布时间】:2013-04-16 17:47:22
【问题描述】:
这是一个非常简单的问题,我找不到解决方案:
这是我的代码:
qint32 pos = ui->twShow->verticalScrollBar()->value();
ui->twShow->blockSignals(true);
//Code for updating the contents QTableWidget twShow, this is done by erasing all cells and adding them again, in case it matters.
ui->twShow->blockSignals(false);
if (pos > 0){
ui->twShow->verticalScrollBar()->setValue(pos);
}
我想要完成的只是保持垂直滚动位置。但是 setValue 函数会忽略值 pos(我通过在指令之前和之后打印值以及两次它的 cero 来检查)。
我也试过: QScrollBar *bar = ui->twShow->verticalScrollBar(); // 和之前一样的代码 ui->twShow->setVerticalScrollBar(bar); //这一行会导致程序崩溃
但是最后一行使程序崩溃(我通过评论检查过它,它工作正常)。
任何建议将不胜感激......
非常感谢
【问题讨论】:
-
您能否澄清一下“相同位置”是什么意思。一般来说,您可以在更新后加载不同数量的行。所以你只想到相同的绝对行或相对滚动条位置或滚动新内容直到出现相同的值?
-
行数始终相同。我想要完全相同的滚动位置。