I would like to know how can I add my custom QGraphicsItem in a grid.

custom-tem.cpp
Qt Code:
  1. #include "custom-item.h"
  2.  
  3. CustomItem::CustomItem(QGraphicsItem *parent)
  4. : QGraphicsItem(parent)
  5. {
  6. /* drawPolygon(...)*/
  7. polygon << QPointF(55, 180) << QPointF(35, 120)
  8. << QPointF(75, 40) << QPointF(115, 20)
  9. << QPointF(195, 80) << QPointF(215, 160)
  10. << QPointF(115, 220);
  11. }
  12. QRectF CustomItem::boundingRect() const
  13. {
  14. return QRectF(0, 0, 250, 250);
  15. }
  16. void CustomItem::paint(QPainter *painter,
  17. const QStyleOptionGraphicsItem *option,
  18. QWidget *widget)
  19. {
  20. painter->setRenderHint(QPainter::Antialiasing);
  21. painter->setBrush(Qt::blue);
  22. }
  23.  
  24. void CustomItem::mousePressEvent(QGraphicsSceneMouseEvent *event)
  25. {
  26. qDebug() << "Mouse button clicked at position: "
  27. << event->pos();
  28. }
  29.  
  30. void CustomItem::mouseReleaseEvent(QGraphicsSceneMouseEvent *event)
  31. {
  32. qDebug() << "Mouse button released at position: "
  33. << event->pos();
  34. }
To copy to clipboard, switch view to plain text mode 

custom-item.h
Qt Code:
  1. #ifndef CUSTOM_ITEM_H
  2. #define CUSTOM_ITEM_H
  3.  
  4. #include <QGraphicsItem>
  5. #include <QPointF>
  6. #include <QRectF>
  7. #include <QPolygonF>
  8. #include <QPainter>
  9. #include <QPainterPath>
  10. #include <QWidget>
  11. #include <QGraphicsSceneMouseEvent>
  12. #include <QDebug>
  13.  
  14.  
  15.  
  16. class CustomItem : public QGraphicsItem
  17. {
  18. public:
  19. CustomItem(QGraphicsItem *parent = 0);
  20.  
  21. QRectF boundingRect() const;
  22. void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget);
  23.  
  24. private:
  25. QPolygonF polygon;
  26. QPixmap pixmap;
  27.  
  28. protected:
  29. void mousePressEvent(QGraphicsSceneMouseEvent *event);
  30. void mouseReleaseEvent(QGraphicsSceneMouseEvent *event);
  31.  
  32. };
  33.  
  34. #endif
To copy to clipboard, switch view to plain text mode 

main.cpp
Qt Code:
  1. #include <QApplication>
  2. #include <QGraphicsScene>
  3. #include <QGraphicsView>
  4.  
  5. #include "custom-item.h"
  6.  
  7. int main(int argc, char **argv)
  8. {
  9. QApplication app(argc, argv);
  10.  
  11. QGraphicsScene scene(0, 0, 300, 300);
  12.  
  13. CustomItem *item = new CustomItem();
  14. item->setPos(24, 24);
  15.  
  16. CustomItem *item2 = new CustomItem();
  17. item2->setPos(80, 24);
  18.  
  19. scene.addItem(item);
  20. scene.addItem(item2);
  21.  
  22. QGraphicsView view(&scene);
  23. view.setRenderHints( QPainter::Antialiasing );
  24.  
  25. view.show();
  26.  
  27. return app.exec();
  28. }
To copy to clipboard, switch view to plain text mode 

I know it is possible to do it using the QGraphicsLayoutItem class. Can someone give me an example of how to do it?