CMindView.cpp 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. #include "CMindView.h"
  2. #include "CRectItem.h"
  3. #include "CLineItem.h"
  4. #include "CTextItem.h"
  5. #include "CMind.h"
  6. #include "CNodeItem.h"
  7. #include <QMenu>
  8. #include <QContextMenuEvent>
  9. #include <QDebug>
  10. CMindView::CMindView(QWidget *parent) : QGraphicsView(new QGraphicsScene(), parent)
  11. {
  12. setRenderHints(QPainter::Antialiasing); // 抗锯齿
  13. }
  14. CMind *CMindView::mind() const
  15. {
  16. return m_mind;
  17. }
  18. void CMindView::setMind(CMind *mind)
  19. {
  20. m_mind = mind;
  21. refresh();
  22. }
  23. void CMindView::refresh()
  24. {
  25. for (CNodeData n : m_mind->nodeList()) {
  26. CNodeItem *item = new CNodeItem(n.number);
  27. item->setText(n.name);
  28. item->setPos(QPointF());
  29. scene()->addItem(item->rectItem());
  30. scene()->addItem(item->textItem());
  31. }
  32. }
  33. void CMindView::setALignment(CMindView::Alignment align)
  34. {
  35. m_align = align;
  36. }
  37. void CMindView::testItems()
  38. {
  39. CRectItem *r = new CRectItem(QRectF(0, 0, 100, 100));
  40. scene()->addItem(r);
  41. CLineItem *l = new CLineItem(QPointF(-100, -100), QPointF(50, 50));
  42. scene()->addItem(l);
  43. l->setFlags(QGraphicsItem::ItemIsMovable);
  44. l->setLineType(CLineItem::CurveToLine);
  45. CTextItem *t = new CTextItem("test", QPoint(0, 0));
  46. scene()->addItem(t);
  47. }