У меня следующая ситуация: я рисую на графической сцене, в одном типе центрального виджета, и иногда это также включает прокрутку сцены. Затем пользователь щелкает в другом месте приложения, центральный виджет изменяется на что-то другое (и позиции полосы прокрутки графических представлений сохраняются где-то). Теперь пользователь хочет вернуться обратно к графической сцене, я перерисовываю сцену (воссоздавая все окно графического представления, потому что, когда пользователь находился за пределами графической сцены, он изменял некоторые значения, которые также должны быть изменены в графическом представлении) и когда я хочу установить предыдущие позиции прокрутки, я вызываю следующий метод:
void GraphicsForm::scrollTo(int hor, int ver)
{
m_qgv->horizontalScrollBar()->setValue(hor);
m_qgv->verticalScrollBar()->setSliderPosition(ver);
}
и это должно изменить положение полосы прокрутки на предыдущие значения (hor, ver), сохраненные до того, как я изменил представление (m_qgv - это объект QGraphicsView).
Проблема в том, что ни горизонтальные, ни вертикальные значения не возвращаются правильно (они правильно сохраняются с помощью horizontal/verticalScrollBar()->sliderPosition()
перед тем, как скрыть сцену), поэтому полосы прокрутки не перемещаются так, как они были до окна меняются, они двигаются намного меньше ...
Любые идеи, предложения, как я могу вернуться к предыдущим координатам прокрутки?