这是一个非常简单的问题,我找不到解决方案:
这是我的代码:
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(巴); //此行崩溃了程序
然而,最后一行崩溃了程序(我通过评论来检查它,它运行正常)。
非常感谢任何建议......
非常感谢
答案 0 :(得分:0)
QTableWidget * tw;
int desiredRow;
// before update
desiredRow = tw->row(tw->itemAt(1,1));
...
// update code
...
tw->scrollToItem( tw->item( desiredRow, 0),
QAbstractItemView::EnsureVisible | QAbstractItemView::PositionAtTop );
答案 1 :(得分:0)
QAbstractItemView :: EnsureVisible = 0。 '或' flag将结果转换为不允许作为scrollToItem方法的参数的整数。另一方面,枚举不打算用作组合标志。