knowledgegraphwidget.h 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. #ifndef KNOWLEDGEGRAPHWIDGET_H
  2. #define KNOWLEDGEGRAPHWIDGET_H
  3. #include "knowledgegraphwidgetitem.h"
  4. #include "knowledgegraphwidgetlink.h"
  5. #include <QDebug>
  6. #include <QPainter>
  7. #include <QWidget>
  8. #include <qmath.h>
  9. namespace Ui {
  10. class KnowledgeGraphWidget;
  11. }
  12. class KnowledgeGraphWidget : public QWidget {
  13. Q_OBJECT
  14. public:
  15. explicit KnowledgeGraphWidget(QWidget* parent = nullptr);
  16. ~KnowledgeGraphWidget();
  17. QList<KnowledgeGraphWidgetItem*> items;
  18. QList<KnowledgeGraphWidgetLink*> links;
  19. void clearItems();
  20. KnowledgeGraphWidgetItem* rootItem() const;
  21. void setRootItem(KnowledgeGraphWidgetItem* rootItem);
  22. void addItem(KnowledgeGraphWidgetItem* parentItem, KnowledgeGraphWidgetItem* item);
  23. KnowledgeGraphWidgetItem* addRootItem(QString& value);
  24. void drawNode(QPainter& painter, KnowledgeGraphWidgetItem* item);
  25. void initNode(KnowledgeGraphWidgetItem* item);
  26. void drawArrowLine(QPainter& painter, QPoint pt1, QPoint pt2);
  27. KnowledgeGraphWidgetItem* addItem(int id, QString name, QString value);
  28. QStringList linkNames;
  29. void AddLink(QString startName, QString endName);
  30. void initChildnum();
  31. int getChildNum(KnowledgeGraphWidgetItem* parentItem);
  32. void setItemsPosition(KnowledgeGraphWidgetItem* parentItem);
  33. void getChilds(KnowledgeGraphWidgetItem* parentItem, QList<KnowledgeGraphWidgetItem*>& childs);
  34. protected:
  35. void paintEvent(QPaintEvent* event);
  36. private:
  37. Ui::KnowledgeGraphWidget* ui;
  38. KnowledgeGraphWidgetItem* m_rootItem;
  39. };
  40. #endif // KNOWLEDGEGRAPHWIDGET_H