Это очень простая проблема, к которой я могу найти решение:Как сохранить вертикальное положение прокрутки в QTableWidget
Это мой код:
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); // Эта строка вылетает из программы
Однако последняя строка сбрасывает программу (которую я проверил, комментируя ее, и она отлично работает).
Любые советы будут оценены ...
Большое спасибо
вы можете разъяснить, что вы подразумеваете под «той же позицией». В общем случае после обновления может быть загружено несколько строк. Таким образом, вы хотите установить только одну и ту же абсолютную строку или относительную позицию полосы прокрутки или прокрутить новый контент до тех же значений? – evilruff
Количество строк всегда одинаково. Я хочу точно такую же позицию прокрутки. – aarelovich