Синхронизировать элементы QGraphicView - PullRequest
0 голосов
/ 21 декабря 2010

У меня есть два объекта QGraphicView (на основе одного и того же производного класса). Они содержат разные сцены, но несколько (иногда много) предметов одинаковы. Такие предметы имеют общие координаты. В качестве альтернативы я отображаю одну или другую внутри одного кадра. У меня не было проблем с этим.

В обоих графических представлениях я добавил возможность увеличивать и уменьшать масштаб и перемещать область просмотра. Я добавил кнопку, чтобы выбрать вид дисплея для отображения. Проблема, с которой я столкнулся, заключается в том, что я до сих пор не смог убедиться, что общие элементы (опять же, с одинаковыми координатами) остаются в том же месте на экране.

У вас есть какой-нибудь совет о том, как синхронизировать два представления?

Я пытался решить эту проблему, используя матрицы преобразования, и масштабирование теперь работает, но у меня все еще есть проблема с переводом, от которой я не могу избавиться!

1 Ответ

2 голосов
/ 21 декабря 2010

Проблема перевода, вероятно, состоит в том, что 2 представления не центрированы в одной и той же точке после изменения преобразования. По умолчанию режим привязки заключается в размещении центра сцены в центре вида после изменения преобразования. Может помочь установка translationAnchor на NoAnchor.

Вам также необходимо убедиться, что 2 сцены имеют одинаковую сценуRect.

...