Я делаю приложение с использованием Qt (в настоящее время 4.8), которое отображает литеральную карту из большого количества элементов QGraphicsScene. Я хотел бы аннотировать представление шкалой. Мое требование для шкалы заключается в том, что она постоянно фиксируется w.r.t виджета видового экрана. Его необходимо обновлять всякий раз, когда изменяется масштаб просмотра (увеличение и т. Д.). Существуют и другие возможные элементы наложения (компас и т. Д.), Поэтому я бы предпочел использовать общее решение.Создание постоянного статического наложения для сцены QGraphicsView
Я смотрел на предыдущие вопросах вокруг этого которые предполагают:
- используя ItemIgnoresTransform
- с помощью наложения растрового изображения.
Я пробовал IgnoresTransform, но этот способ не сработал правильно: я не мог понять, как исправить его на месте (скажем) в нижнем углу видового экрана и с некоторым трудом получить текст и строки всегда отображается в правильном размере.
Я отменил это и подклассифицировал QGraphicsView, добавив накладную pixmap, переопределив paintEvent (вызывает оригинальную, затем нарисовывает наложенную pixmap сверху) и параметр выравнивания, чтобы указать, куда он идет. Кодирование некоторого кода рисования pixmap создает полезную шкалу на представлении. Ура! ... но это не работает со свитками - я получаю «разбитые» визуализации масштаба по всему, или иногда вообще не масштабируется. Я думаю, это потому, что QGraphicsView :: scrollViewportBy() использует viewport() -> scroll(), поэтому я задавался вопросом, поможет ли переключение на ViewportSmartUpdate, но это не помогает. Я бы предпочел не переключиться на ViewportFullUpdate, поскольку это, скорее всего, замедлит приложение слишком много (на сцене есть миллионы предметов, и для этого потребуется полная перерисовка, чтобы передвигаться).
So. Любые идеи отсюда? Будет ли лучше адаптировать мой код pixmap для написания нового, в основном прозрачного виджета, который накладывается на видовое окно?
Спасибо за любую помощь ...
Да, после игры, это действительно лучший способ. Благодарю. – rivimey