GraphicsItemGroup.cpp 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. #include "GraphicsItemGroup.h"
  2. GraphicsItemGroup::GraphicsItemGroup(QGraphicsItemGroup *group, QGraphicsItem *parent)
  3. :GraphicsRectItem(QRect(0,0,0,0),parent )
  4. ,m_group(group)
  5. {
  6. if ( m_group ){
  7. m_group->setParentItem(this);
  8. QRectF bound = m_group->boundingRect();
  9. qDebug()<<" group rect :" << m_group->boundingRect() << " new Rect:" << bound;
  10. bound.normalized();
  11. prepareGeometryChange();
  12. m_width = bound.width();
  13. m_height = bound.height();
  14. QPointF delta = pos() - bound.center() ;
  15. setTransform(transform().translate(delta.x(),delta.y()));
  16. setTransformOriginPoint( bound.center());
  17. moveBy(-delta.x(),-delta.y());
  18. m_group->setTransformOriginPoint(bound.center());
  19. qDebug()<<"pos :" << delta;
  20. updateGeometry();
  21. }
  22. }
  23. QRectF GraphicsItemGroup::boundingRect() const
  24. {
  25. QRectF bounding = m_group->mapRectToParent(m_group->boundingRect());
  26. return bounding;
  27. }
  28. QPainterPath GraphicsItemGroup::shape() const
  29. {
  30. return m_group->shape() ;
  31. }
  32. void GraphicsItemGroup::resizeTo(SizeHandleRect::Direction dir, const QPointF &point)
  33. {
  34. }
  35. void GraphicsItemGroup::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget)
  36. {
  37. QPointF origin = mapFromScene(pos());
  38. QPointF origin1 = m_group->transformOriginPoint();
  39. QColor c1 = QColor(Qt::blue);
  40. // c1.setAlpha(180);
  41. painter->setBrush(c1);
  42. painter->drawEllipse(origin.x() - 3 , origin.y() - 3 ,6,6);
  43. QColor c2 = QColor(Qt::green);
  44. // c2.setAlpha(180);
  45. painter->setBrush(c2);
  46. painter->drawEllipse(origin1.x() - 3 , origin1.y() - 3 ,6,6);
  47. }