Ver Fonte

方案规划功能设计

chengxr há 1 ano atrás
pai
commit
8e4c98aa26

+ 4 - 2
QFD/QFD.pro

@@ -80,6 +80,7 @@ SOURCES += \
     common/QFDAlert.cpp \
     common/QFDConfig.cpp \
     common/QFDIcon.cpp \
+    common/SchemePlanManager.cpp \
     main.cpp \
     view/AboutView.cpp \
     view/AlgorithmManageView.cpp \
@@ -116,9 +117,9 @@ SOURCES += \
     widgets/ProjectStateWidget.cpp \
     widgets/RegisterWidget.cpp \
     widgets/RenameWidget.cpp \
-    widgets/SchemeDesignWidget.cpp \
     widgets/SchemeFlowWidget.cpp \
     widgets/SchemeOptionWidget.cpp \
+    widgets/SchemePlanWidget.cpp \
     widgets/SchemeWidget.cpp
 
 HEADERS += \
@@ -138,6 +139,7 @@ HEADERS += \
     common/QFDAlert.h \
     common/QFDConfig.h \
     common/QFDIcon.h \
+    common/SchemePlanManager.h \
     view/AboutView.h \
     view/AlgorithmManageView.h \
     view/EvaluateView.h \
@@ -173,9 +175,9 @@ HEADERS += \
     widgets/ProjectStateWidget.h \
     widgets/RegisterWidget.h \
     widgets/RenameWidget.h \
-    widgets/SchemeDesignWidget.h \
     widgets/SchemeFlowWidget.h \
     widgets/SchemeOptionWidget.h \
+    widgets/SchemePlanWidget.h \
     widgets/SchemeWidget.h
 
 

+ 2 - 2
QFD/view/ProjectView.cpp

@@ -4,7 +4,7 @@
 #include "RenameWidget.h"
 #include "ConfigExpertWidget.h"
 #include "IndexSystemWidget.h"
-#include "SchemeDesignWidget.h"
+#include "SchemePlanWidget.h"
 #include "DataCollectionWidget.h"
 #include "DataProcessingWidget.h"
 
@@ -98,7 +98,7 @@ void ProjectView::initWidgets()
     m_stack = new QStackedWidget(this);
 
     m_indexSystem    = new IndexSystemWidget(m_proj, m_stack);
-    m_schemeDesign   = new SchemeDesignWidget(m_proj, m_stack);
+    m_schemeDesign   = new SchemePlanWidget(m_proj, m_stack);
     m_dataCollection = new DataCollectionWidget(m_proj, m_stack);
     m_dataProcessing = new DataProcessingWidget(m_proj, m_stack);
 

+ 2 - 2
QFD/view/ProjectView.h

@@ -6,7 +6,7 @@
 class ProjectInfo;
 
 class IndexSystemWidget;
-class SchemeDesignWidget;
+class SchemePlanWidget;
 class DataCollectionWidget;
 class DataProcessingWidget;
 
@@ -60,7 +60,7 @@ private:
 
     QStackedWidget *m_stack                = nullptr;
     IndexSystemWidget *m_indexSystem       = nullptr;
-    SchemeDesignWidget *m_schemeDesign     = nullptr;
+    SchemePlanWidget *m_schemeDesign     = nullptr;
     DataCollectionWidget *m_dataCollection = nullptr;
     DataProcessingWidget *m_dataProcessing = nullptr;
 };

+ 0 - 18
QFD/widgets/SchemeDesignWidget.h

@@ -1,18 +0,0 @@
-#ifndef SCHEMEDESIGNWIDGET_H
-#define SCHEMEDESIGNWIDGET_H
-
-#include "EvalWidget.h"
-
-class SchemeDesignWidget : public EvalWidget
-{
-    Q_OBJECT
-public:
-    SchemeDesignWidget(ProjectInfo *proj, QWidget *parent = nullptr);
-
-    void setType(int type) override;
-
-private:
-    void setupTabWidget();
-};
-
-#endif  // SCHEMEDESIGNWIDGET_H

+ 72 - 63
QFD/widgets/SchemeFlowWidget.cpp

@@ -99,7 +99,7 @@ SchemeFlowWidget::SchemeFlowWidget(ProjectInfo *proj, int indexType, QWidget *pa
 
 SchemeFlowWidget::~SchemeFlowWidget()
 {
-    delete graphModel;
+    delete m_graphModel;
 }
 
 void SchemeFlowWidget::setType(int t)
@@ -110,11 +110,11 @@ void SchemeFlowWidget::setType(int t)
 
 void SchemeFlowWidget::initWidget()
 {
-    graphModel = new DataFlowModel(registerDataModels());
-    graphModel->setNodesLocked(true);
-    graphModel->setDetachPossible(false);
+    m_graphModel = new DataFlowModel(registerDataModels());
+    m_graphModel->setNodesLocked(true);
+    m_graphModel->setDetachPossible(false);
 
-    auto scene         = new DataFlowGraphicsScene(*graphModel);
+    auto scene         = new DataFlowGraphicsScene(*m_graphModel);
     GraphicsView *view = new GraphicsView(scene);
     scene->setOrientation(Qt::Vertical);
 
@@ -124,8 +124,8 @@ void SchemeFlowWidget::initWidget()
 
 void SchemeFlowWidget::clearAllNodes()
 {
-    for (int id : graphModel->allNodeIds()) {
-        graphModel->deleteNode(id);
+    for (int id : m_graphModel->allNodeIds()) {
+        m_graphModel->deleteNode(id);
     }
 }
 
@@ -138,79 +138,88 @@ void SchemeFlowWidget::refresh()
     switch (m_indexType) {
     case ProjectManager::AbilityIndex:
     case ProjectManager::TechIndex: {
-        NodeId id1 = graphModel->addNode(FlowIndexData().type().id);
-        graphModel->setNodeData(id1, NodeRole::Position, QPointF(0, h * 0));
+        NodeId id1 = m_graphModel->addNode(FlowIndexData().type().id);
+        m_graphModel->setNodeData(id1, NodeRole::Position, QPointF(0, h * 0));
         FlowGraphPlainNodeWidget *w = new FlowGraphPlainNodeWidget();
         w->setText("构建权重分析指标体系");
-        graphModel->setNodeData(id1, NodeRole::Widget, QVariant::fromValue(w));
-
-        NodeId id2 = graphModel->addNode(FlowSampleData().type().id);
-        graphModel->setNodeData(id2, NodeRole::Position, QPointF(0, h * 1));
-        graphModel->setNodeData(id2, NodeRole::Caption, QString("收集权重分析数据"));
-        graphModel->addConnection(ConnectionId { id1, 0, id2, 0 });
-
-        NodeId id3 = graphModel->addNode(FlowPCAData().type().id);
-        graphModel->setNodeData(id3, NodeRole::Position, QPointF(0, h * 2));
-        graphModel->setNodeData(id3, NodeRole::Caption, QString("指标体系优化"));
-        graphModel->addConnection(ConnectionId { id2, 0, id3, 0 });
-
-        NodeId id4 = graphModel->addNode(FlowWeightData().type().id);
-        graphModel->setNodeData(id4, NodeRole::Position, QPointF(0, h * 3));
-        graphModel->setNodeData(id4, NodeRole::Caption, QString("指标权重计算"));
-        graphModel->addConnection(ConnectionId { id3, 0, id4, 0 });
-
-        NodeId id5 = graphModel->addNode(FlowResultData().type().id);
-        graphModel->setNodeData(id5, NodeRole::Position, QPointF(0, h * 4));
-        graphModel->setNodeData(id5, NodeRole::Caption, QString("分析结果展示"));
-        graphModel->addConnection(ConnectionId { id4, 0, id5, 0 });
-
-        NodeId id6 = graphModel->addNode(FlowReportData().type().id);
-        graphModel->setNodeData(id6, NodeRole::Position, QPointF(0, h * 5));
-        graphModel->setNodeData(id6, NodeRole::Caption, QString("生成分析评估报告"));
-        graphModel->addConnection(ConnectionId { id5, 0, id6, 0 });
+        m_graphModel->setNodeData(id1, NodeRole::Widget, QVariant::fromValue(w));
+
+        NodeId id2 = m_graphModel->addNode(FlowSampleData().type().id);
+        m_graphModel->setNodeData(id2, NodeRole::Position, QPointF(0, h * 1));
+        m_graphModel->setNodeData(id2, NodeRole::Caption, QString("收集权重分析数据"));
+        m_graphModel->addConnection(ConnectionId { id1, 0, id2, 0 });
+
+        NodeId id3 = m_graphModel->addNode(FlowPCAData().type().id);
+        m_graphModel->setNodeData(id3, NodeRole::Position, QPointF(0, h * 2));
+        m_graphModel->setNodeData(id3, NodeRole::Caption, QString("指标体系优化"));
+        m_graphModel->addConnection(ConnectionId { id2, 0, id3, 0 });
+
+        NodeId id4 = m_graphModel->addNode(FlowWeightData().type().id);
+        m_graphModel->setNodeData(id4, NodeRole::Position, QPointF(0, h * 3));
+        m_graphModel->setNodeData(id4, NodeRole::Caption, QString("指标权重计算"));
+        m_graphModel->addConnection(ConnectionId { id3, 0, id4, 0 });
+
+        NodeId id5 = m_graphModel->addNode(FlowResultData().type().id);
+        m_graphModel->setNodeData(id5, NodeRole::Position, QPointF(0, h * 4));
+        m_graphModel->setNodeData(id5, NodeRole::Caption, QString("分析结果展示"));
+        m_graphModel->addConnection(ConnectionId { id4, 0, id5, 0 });
+
+        NodeId id6 = m_graphModel->addNode(FlowReportData().type().id);
+        m_graphModel->setNodeData(id6, NodeRole::Position, QPointF(0, h * 5));
+        m_graphModel->setNodeData(id6, NodeRole::Caption, QString("生成分析评估报告"));
+        m_graphModel->addConnection(ConnectionId { id5, 0, id6, 0 });
+        qDebug() << __FUNCTION__ << __LINE__ << id1 << id2 << id3 << id4 << id5 << id6 << endl;
         break;
     }
     case ProjectManager::OptimalIndex: {
-        NodeId id1 = graphModel->addNode(FlowIndexData().type().id);
-        graphModel->setNodeData(id1, NodeRole::Position, QPointF(0, h * 0));
+        NodeId id1 = m_graphModel->addNode(FlowIndexData().type().id);
+        m_graphModel->setNodeData(id1, NodeRole::Position, QPointF(0, h * 0));
 
-        NodeId id2 = graphModel->addNode(FlowSampleData().type().id);
-        graphModel->setNodeData(id2, NodeRole::Position, QPointF(0, h * 1));
-        graphModel->addConnection(ConnectionId { id1, 0, id2, 0 });
+        NodeId id2 = m_graphModel->addNode(FlowSampleData().type().id);
+        m_graphModel->setNodeData(id2, NodeRole::Position, QPointF(0, h * 1));
+        m_graphModel->addConnection(ConnectionId { id1, 0, id2, 0 });
 
-        NodeId id8 = graphModel->addNode(FlowSchemeData().type().id);
-        graphModel->setNodeData(id8, NodeRole::Position, QPointF(0, h * 2));
-        graphModel->addConnection(ConnectionId { id2, 0, id8, 0 });
+        NodeId id8 = m_graphModel->addNode(FlowSchemeData().type().id);
+        m_graphModel->setNodeData(id8, NodeRole::Position, QPointF(0, h * 2));
+        m_graphModel->addConnection(ConnectionId { id2, 0, id8, 0 });
 
-        NodeId id5 = graphModel->addNode(FlowResultData().type().id);
-        graphModel->setNodeData(id5, NodeRole::Position, QPointF(0, h * 3));
-        graphModel->addConnection(ConnectionId { id8, 0, id5, 0 });
+        NodeId id5 = m_graphModel->addNode(FlowResultData().type().id);
+        m_graphModel->setNodeData(id5, NodeRole::Position, QPointF(0, h * 3));
+        m_graphModel->addConnection(ConnectionId { id8, 0, id5, 0 });
 
-        NodeId id6 = graphModel->addNode(FlowReportData().type().id);
-        graphModel->setNodeData(id6, NodeRole::Position, QPointF(0, h * 4));
-        graphModel->addConnection(ConnectionId { id5, 0, id6, 0 });
+        NodeId id6 = m_graphModel->addNode(FlowReportData().type().id);
+        m_graphModel->setNodeData(id6, NodeRole::Position, QPointF(0, h * 4));
+        m_graphModel->addConnection(ConnectionId { id5, 0, id6, 0 });
+
+        qDebug() << __FUNCTION__ << __LINE__ << id1 << id2 << id8 << id5 << id6 << endl;
         break;
     }
     case ProjectManager::EfficiencyIndex: {
-        NodeId id1 = graphModel->addNode(FlowIndexData().type().id);
-        graphModel->setNodeData(id1, NodeRole::Position, QPointF(0, h * 0));
+        NodeId id1 = m_graphModel->addNode(FlowIndexData().type().id);
+        m_graphModel->setNodeData(id1, NodeRole::Position, QPointF(0, h * 0));
 
-        NodeId id7 = graphModel->addNode(FlowEffiLevData().type().id);
-        graphModel->setNodeData(id7, NodeRole::Position, QPointF(0, h * 1));
-        graphModel->addConnection(ConnectionId { id1, 0, id7, 0 });
+        NodeId id7 = m_graphModel->addNode(FlowEffiLevData().type().id);
+        m_graphModel->setNodeData(id7, NodeRole::Position, QPointF(0, h * 1));
+        m_graphModel->addConnection(ConnectionId { id1, 0, id7, 0 });
 
-        NodeId id9 = graphModel->addNode(FlowEffiData().type().id);
-        graphModel->setNodeData(id9, NodeRole::Position, QPointF(0, h * 2));
-        graphModel->addConnection(ConnectionId { id7, 0, id9, 0 });
+        NodeId id9 = m_graphModel->addNode(FlowEffiData().type().id);
+        m_graphModel->setNodeData(id9, NodeRole::Position, QPointF(0, h * 2));
+        m_graphModel->addConnection(ConnectionId { id7, 0, id9, 0 });
 
-        NodeId id5 = graphModel->addNode(FlowResultData().type().id);
-        graphModel->setNodeData(id5, NodeRole::Position, QPointF(0, h * 3));
-        graphModel->addConnection(ConnectionId { id9, 0, id5, 0 });
+        NodeId id5 = m_graphModel->addNode(FlowResultData().type().id);
+        m_graphModel->setNodeData(id5, NodeRole::Position, QPointF(0, h * 3));
+        m_graphModel->addConnection(ConnectionId { id9, 0, id5, 0 });
 
-        NodeId id6 = graphModel->addNode(FlowReportData().type().id);
-        graphModel->setNodeData(id6, NodeRole::Position, QPointF(0, h * 4));
-        graphModel->addConnection(ConnectionId { id5, 0, id6, 0 });
+        NodeId id6 = m_graphModel->addNode(FlowReportData().type().id);
+        m_graphModel->setNodeData(id6, NodeRole::Position, QPointF(0, h * 4));
+        m_graphModel->addConnection(ConnectionId { id5, 0, id6, 0 });
+        qDebug() << __FUNCTION__ << __LINE__ << id1 << id7 << id9 << id5 << id6 << endl;
         break;
     }
     }
+
+    std::unordered_set<NodeId> set = m_graphModel->allNodeIds();
+    for (auto iter = set.begin(); iter != set.end(); ++iter) {
+        qDebug() << __FUNCTION__ << __LINE__ << *iter << endl;
+    }
 }

+ 5 - 1
QFD/widgets/SchemeFlowWidget.h

@@ -30,6 +30,10 @@ class ProjectInfo;
 
 class QHBoxLayout;
 
+/**
+ * @brief The SchemeFlowWidget class
+ * 方案流程图
+ */
 class SchemeFlowWidget : public QWidget
 {
     Q_OBJECT
@@ -55,7 +59,7 @@ private:
 
     //    GraphicsView *m_view = nullptr;
 
-    DataFlowModel *graphModel = nullptr;
+    DataFlowModel *m_graphModel = nullptr;
 
     QHBoxLayout *m_layout = nullptr;
 };

+ 4 - 4
QFD/widgets/SchemeDesignWidget.cpp → QFD/widgets/SchemePlanWidget.cpp

@@ -1,4 +1,4 @@
-#include "SchemeDesignWidget.h"
+#include "SchemePlanWidget.h"
 
 #include "SchemeFlowWidget.h"
 
@@ -9,18 +9,18 @@
 
 #include <QDebug>
 
-SchemeDesignWidget::SchemeDesignWidget(ProjectInfo *proj, QWidget *parent) : EvalWidget(proj, parent)
+SchemePlanWidget::SchemePlanWidget(ProjectInfo *proj, QWidget *parent) : EvalWidget(proj, parent)
 {
     setTitle("评估方案规划");
 }
 
-void SchemeDesignWidget::setType(int type)
+void SchemePlanWidget::setType(int type)
 {
     EvalWidget::setType(type);
     setupTabWidget();
 }
 
-void SchemeDesignWidget::setupTabWidget()
+void SchemePlanWidget::setupTabWidget()
 {
     m_tab->clear();
 

+ 22 - 0
QFD/widgets/SchemePlanWidget.h

@@ -0,0 +1,22 @@
+#ifndef SCHEMEPLANWIDGET_H
+#define SCHEMEPLANWIDGET_H
+
+#include "EvalWidget.h"
+
+/**
+ * @brief The SchemePlanWidget class
+ * 方案规划页面
+ */
+class SchemePlanWidget : public EvalWidget
+{
+    Q_OBJECT
+public:
+    SchemePlanWidget(ProjectInfo *proj, QWidget *parent = nullptr);
+
+    void setType(int type) override;
+
+private:
+    void setupTabWidget();
+};
+
+#endif  // SCHEMEPLANWIDGET_H

+ 0 - 2
QtNodes/src/DefaultNodePainter.cpp

@@ -200,8 +200,6 @@ void DefaultNodePainter::drawNodeCaption(QPainter *painter, NodeGraphicsObject &
 
     QPointF position = geometry.captionPosition(nodeId);
 
-    qDebug() << __FUNCTION__ << __LINE__ << "----" << name << position << endl;
-
     QJsonDocument json = QJsonDocument::fromVariant(model.nodeData(nodeId, NodeRole::Style));
     NodeStyle nodeStyle(json.object());
 

+ 0 - 1
QtNodes/src/DefaultVerticalNodeGeometry.cpp

@@ -152,7 +152,6 @@ QRectF DefaultVerticalNodeGeometry::captionRect(NodeId const nodeId) const
         return QRect();
 
     QString name = _graphModel.nodeData<QString>(nodeId, NodeRole::Caption);
-    qDebug() << __FUNCTION__ << __LINE__ << "----" << name << endl;
 
     return _boldFontMetrics.boundingRect(name);
 }