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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Зеркальное отражение для QGraphicsItem  (Прочитано 4604 раз)
Yegor
Гость
« : Ноябрь 30, 2011, 20:44 »

Здравствуйте!

Можно ли сделать для QGraphicsItem такое преобразование как зеркальное отражение? Отражение относительно горизонтали, вертикали?
Записан
_OLEGator_
Гость
« Ответ #1 : Декабрь 01, 2011, 11:02 »

По всей видимости, надо реализовать свой QGraphicsEffect с требуемым функционалом.
Записан
artiom_kh
Гость
« Ответ #2 : Март 02, 2012, 12:38 »

можно проще:

Код
C++ (Qt)
static QTransform makeTransform( int f, const QSizeF& objSize );//f - flip flags (fsHorizontal,fsVertical), objSize - the size of QGraphicsItem
 
QTransform makeTransform( int f, const QSizeF& objSize )
 {
   FUNC_PREPROCESS;
   QTransform res;
   qreal fDx = 1., fDy = 1.;
   QPointF ptOffset;
   if( f & fsHorizontal )//flip by horz
   {
     fDx = -1;
     ptOffset.setX( -objSize.width() );
   }
   if( f & fsVertical )//flip by vert
   {
     fDy = -1;
     ptOffset.setY( -objSize.height() );
   }
   res.scale( fDx, fDy );
   res.translate( ptOffset.x(), ptOffset.y() );
   return res;
 }
 
//usage
extern QGraphicsItem* pItm;
QTransform t = makeTransform( fsHorizontal | fsVertical, pItm->boundingRect().size() );
pItm->setTransform( t );
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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