QGraphicsView background - PullRequest
       9

QGraphicsView background

0 голосов
/ 16 января 2012

Привет, я пытаюсь получить поведение в стиле фотошопа для моей QGraphicsScene

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

Есть идеи?

ТНХ.

1 Ответ

1 голос
/ 16 января 2012

Вопрос 1

Размер сетки на заднем плане не должен изменяться при вызове масштаба.

Используйте флаг QGraphicsItem::ItemIgnoresTransformations .

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

Для установки этого флага используйте функцию setFlag при создании элемента сетки.

Вопрос 2

Я должен быть в состоянии сохранить изображение с помощью QPixmap :: grabWidget (view), но без фоновой сетки.

Вызовите hide функция элемента сетки перед вызовом grabWidget.После того, как вы взяли его, вы снова показываете его, вызывая функцию show.

...