crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> QGraphicsItem который бы не менял угол поворота при вызове QGraphicsView::rotate
vintik
  опции профиля:
сообщение 28.3.2011, 22:40
Сообщение #1


Новичок


Группа: Новичок
Сообщений: 8
Регистрация: 28.3.2011
Пользователь №: 2547

Спасибо сказали: 2 раз(а)




Репутация:   0  


Всем привет! Вопрос уже задавал на prog.org.ru
Пока результата нету... Надежда на вас))

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

Т.е. схема примерно следующая: создаю сцену, в ней размещаю этот самый графический элемент (горизонтально:длинной стороной вдоль нижней части экрана). Затем создаю виджет просмоторщик, у которого есть методы для масштабирования и поворота сцены на 5 градусов (QGraphicsView::rotate(5)). Вызов методов вешаю на кнопки . Назначаю этому просмоторщику ранее созданную сцену. Далее, жму кнопку масштабирования - ГЭ масштабируется, жму кнопку поворота, сцена поворачивается, вместе с ней ГЭ, но при этом он сохраняет свою горизонтальную ориентацию.

Такой ГЭ на базе QGraphicsRectItem и QObject сделать-таки удалось, работает исправно, но я уверен, что есть более элегантные решения. Реализовал примерно так:
1. В классе ГЭ есть слот для поворота вокруг центра прямоугольника на заданный угол
2. При нажатии кнопки поворота просмоторщика высылается сигнал для ГЭ со значением угла поворота (5)
3. Соответствующий слот ГЭ делает поворот на -5 градусов

Может быть не нужен огород со слотами и сигналами, а в QGraphicsItem есть метод, который бы вызывался каждый раз при QGraphicsView::rotate и при этом в таком методе можно было бы получить значение угла поворота из вида.
Или имеет смысл вообще свой итем замутить? Буду рад любой помощи))

Предлагали посмотреть вот сюды
QGraphicsItem::setFlags(QGraphicsItem::ItemIgnoresTransformations)
Но не подходит, т.к. блокирует масштабирование
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 29.4.2024, 1:52