Я пытаюсь установить значение полосы прокрутки 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