Russian Qt Forum

Qt => 2D и 3D графика => Тема начата: once_again_abc от Декабрь 12, 2013, 06:17



Название: QGraphicScene + ItemIgnoresTransformations
Отправлено: once_again_abc от Декабрь 12, 2013, 06:17
Идея следующая: реализовать зум и выделять области поверх зума некоторым полигоном.
Пытаюсь сделать это следующим образом:

1. Класс-производный от QGraphicsView показывает QGraphicsScene
2. На этой QGraphicsScene есть несколько графических айтемов которые необходимо увеличивать.
3. На этой же QGraphicsScene есть QGraphicsPixmapItem с флагом ItemIgnoresTransformations, который должен содержать QPixmap с моим полигоном.

Если делать без ItemIgnoresTransformations, то при увеличении линии полигона тоже увеличиваются и размываются, мне же нужна постоянная ширина линий в 1 пиксель правильно замапленный на увеличенную картинку, т.е. дуги полигона должны иметь правильный размер. Что-то я запутался в этих трансформациях. Как такую штуку можно сделать?

Спасибо!


Название: Re: QGraphicScene + ItemIgnoresTransformations
Отправлено: _OLEGator_ от Декабрь 12, 2013, 09:23
Чем стандартный функционал не устраивает?
Код
C++ (Qt)
QGraphicsView::setDragMode(QGraphicsView::RubberBandDrag)


Название: Re: QGraphicScene + ItemIgnoresTransformations
Отправлено: once_again_abc от Декабрь 12, 2013, 11:34
посмотрел документаци и так и не понял как этим воспользоваться =(


Название: Re: QGraphicScene + ItemIgnoresTransformations
Отправлено: _OLEGator_ от Декабрь 12, 2013, 11:57
Устанавливаешь такой режим когда надо выделять элементы - появляется возможность выделять элементы с помощью прямоугольника.
Дальше ловишь selectionChanged() у сцены, если необходимо отслеживать изменения.
Во вью уже реализованы механизмы выделения с помощью прямоугольника и всякое перемещение группы элементов - смысл писать свой велосипед?


Название: Re: QGraphicScene + ItemIgnoresTransformations
Отправлено: once_again_abc от Декабрь 13, 2013, 02:32
Понятно, спасибо! К сожалению прямоугольник не подходит  :'(, нужен полигон произвольной формы.