我试图在更新其模型后立即设置 QListView 滚动条的值。问题是滚动条当时没有正确设置,所以它的maximum
值不正确。这意味着当我设置该值时,它永远不会超过这个(不正确的)最大值。如果我qDebug
在其他地方添加一些语句,我可以看到最大值在一段时间后再次正确。
我想我需要以某种方式强制更新滚动条或视图,但我尝试了各种方法 - updateGeometry
、repaint
、update
、setFlow
等,但没有任何成功。
关于我能做什么的任何建议?以下是我当前的代码:
int previousScrollValue = cardList_->verticalScrollBar()->value();
qDebug() << "Before" << previousScrollValue;
CardListModel* model = new CardListModel(deck->id());
cardList_->setModel(model);
cardList_->verticalScrollBar()->setValue(previousScrollValue);
qDebug() << "After" << cardList_->verticalScrollBar()->value(); // Wrong value
qDebug() << "Max" << cardList_->verticalScrollBar()->maximum(); // Wrong value