Russian Qt Forum
Ноябрь 27, 2024, 04:22 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: QGraphicScene + ItemIgnoresTransformations  (Прочитано 2909 раз)
once_again_abc
Гость
« : Декабрь 12, 2013, 06:17 »

Идея следующая: реализовать зум и выделять области поверх зума некоторым полигоном.
Пытаюсь сделать это следующим образом:

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

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

Спасибо!
Записан
_OLEGator_
Гость
« Ответ #1 : Декабрь 12, 2013, 09:23 »

Чем стандартный функционал не устраивает?
Код
C++ (Qt)
QGraphicsView::setDragMode(QGraphicsView::RubberBandDrag)
Записан
once_again_abc
Гость
« Ответ #2 : Декабрь 12, 2013, 11:34 »

посмотрел документаци и так и не понял как этим воспользоваться =(
Записан
_OLEGator_
Гость
« Ответ #3 : Декабрь 12, 2013, 11:57 »

Устанавливаешь такой режим когда надо выделять элементы - появляется возможность выделять элементы с помощью прямоугольника.
Дальше ловишь selectionChanged() у сцены, если необходимо отслеживать изменения.
Во вью уже реализованы механизмы выделения с помощью прямоугольника и всякое перемещение группы элементов - смысл писать свой велосипед?
Записан
once_again_abc
Гость
« Ответ #4 : Декабрь 13, 2013, 02:32 »

Понятно, спасибо! К сожалению прямоугольник не подходит  Плачущий, нужен полигон произвольной формы.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.149 секунд. Запросов: 20.