Browse Source

评估项目页面

chengxr 1 year ago
parent
commit
c42980970e

+ 8 - 0
QFD/QFD.pro

@@ -80,9 +80,13 @@ SOURCES += \
     widgets/ConfigExpertWidget.cpp \
     widgets/CreateProjWidget.cpp \
     widgets/CustomTitleBar.cpp \
+    widgets/DataCollectionWidget.cpp \
+    widgets/DataProcessingWidget.cpp \
+    widgets/EvalSchemeWidget.cpp \
     widgets/EvaluateOptionWidget.cpp \
     widgets/ExpertInfoWidget.cpp \
     widgets/ExpertListWidget.cpp \
+    widgets/IndexSystemWidget.cpp \
     widgets/LoginWidget.cpp \
     widgets/ProjectListWidget.cpp \
     widgets/ProjectStateWidget.cpp \
@@ -111,9 +115,13 @@ HEADERS += \
     widgets/ConfigExpertWidget.h \
     widgets/CreateProjWidget.h \
     widgets/CustomTitleBar.h \
+    widgets/DataCollectionWidget.h \
+    widgets/DataProcessingWidget.h \
+    widgets/EvalSchemeWidget.h \
     widgets/EvaluateOptionWidget.h \
     widgets/ExpertInfoWidget.h \
     widgets/ExpertListWidget.h \
+    widgets/IndexSystemWidget.h \
     widgets/LoginWidget.h \
     widgets/ProjectListWidget.h \
     widgets/ProjectStateWidget.h \

+ 19 - 22
QFD/view/ProjectView.cpp

@@ -19,18 +19,16 @@
 
 ProjectView::ProjectView(ProjectInfo *proj, QWidget *parent) : QWidget(parent), m_proj(proj)
 {
-    selectItem(m_tree->topLevelItem(0), 0);
+    initWidgets();
+    initLayout();
+    connectSigalsAndSlots();
+    if (m_tree->topLevelItemCount() > 0) {
+        itemClicked(m_tree->topLevelItem(0), 0);
+    }
 }
 
 void ProjectView::showEvent(QShowEvent *event)
 {
-    if (m_initilized == false) {
-        initWidgets();
-        initLayout();
-        connectSigalsAndSlots();
-        m_initilized = true;
-    }
-
     QWidget::showEvent(event);
 }
 
@@ -50,16 +48,17 @@ void ProjectView::initWidgets()
     m_title->setText(m_proj->projectName);
     QFont ft("Microsoft YaHei", 14);
     m_title->setFont(ft);
-
     m_close = new PushButton("关闭", this);
+    m_tree  = new TreeWidget(this);
 
-    m_tree = new TreeWidget(this);
-
+    // 根据评估类型添加列表条目
     QList<ProjectManager::EvalType> types = ProjectManager::evalTypeList(*m_proj);
     for (int i = 0; i < types.count(); i++) {
         QString typeName      = ProjectManager::nameOfEvalType(types[i]);
         QTreeWidgetItem *item = new QTreeWidgetItem({ typeName });
-        item->setData(0, Qt::BackgroundRole, types[i]);
+        Qt::ItemFlags f       = item->flags() ^ Qt::ItemIsSelectable;
+        item->setFlags(f);  // 设置 topLevelItem 不可选中
+
         item->addChildren({ new QTreeWidgetItem({ "指标体系设计" }), new QTreeWidgetItem({ "评估方案规划" }),
                             new QTreeWidgetItem({ "评估数据采集" }), new QTreeWidgetItem({ "评估数据处理" }) });
         m_tree->addTopLevelItem(item);
@@ -67,14 +66,12 @@ void ProjectView::initWidgets()
 
     m_tree->expandAll();
     m_tree->setHeaderHidden(true);
-    m_tree->setFixedWidth(300);
+    m_tree->setFixedWidth(200);
 
+    // 分割线
     m_contentSeperator = new QWidget(this);
     m_contentSeperator->setFixedWidth(1);
-
     QPalette pal(m_contentSeperator->palette());
-
-    //设置背景黑色
     pal.setColor(QPalette::Background, QColor("#aaaaaa"));
     m_contentSeperator->setAutoFillBackground(true);
     m_contentSeperator->setPalette(pal);
@@ -101,27 +98,27 @@ void ProjectView::initLayout()
 void ProjectView::connectSigalsAndSlots()
 {
     connect(m_close, &PushButton::clicked, this, &ProjectView::sigClose);
-    connect(m_tree, &TreeWidget::itemClicked, this, &ProjectView::selectItem);
+    connect(m_tree, &TreeWidget::itemClicked, this, &ProjectView::itemClicked);
 }
 
-void ProjectView::selectItem(QTreeWidgetItem *item, int column)
+void ProjectView::itemClicked(QTreeWidgetItem *item, int column)
 {
     Q_UNUSED(column)
 
-    int typeIndex = m_tree->indexOfTopLevelItem(item);
-    int taskIndex = -1;
+    int typeIndex = m_tree->indexOfTopLevelItem(item);  // 评估类型, 一级条目
+    int taskIndex = -1;                                 // 评估事项, 二级条目
     if (typeIndex < 0) {
         typeIndex = m_tree->indexOfTopLevelItem(item->parent());
         taskIndex = item->parent()->indexOfChild(item);
     }
 
     if (taskIndex < 0) {
-        item->setSelected(false);
         item->child(0)->setSelected(true);
     }
 
     ProjectManager::EvalType type = ProjectManager::evalTypeList(*m_proj)[typeIndex];
     QString typeName              = ProjectManager::nameOfEvalType(type);
 
-    qDebug() << __FUNCTION__ << __LINE__ << typeIndex << type << typeName << taskIndex << endl;
+    qDebug() << __FUNCTION__ << __LINE__ << typeIndex << taskIndex << m_proj->projectName << typeName
+             << m_tree->selectedItems().first()->text(0) << endl;
 }

+ 1 - 3
QFD/view/ProjectView.h

@@ -34,13 +34,11 @@ private:
     void connectSigalsAndSlots();
 
 private slots:
-    void selectItem(QTreeWidgetItem *item, int column);
+    void itemClicked(QTreeWidgetItem *item, int column);
 
 private:
     ProjectInfo *m_proj = nullptr;
 
-    bool m_initilized = false;
-
     QVBoxLayout *m_layout        = nullptr;
     QHBoxLayout *m_headerLayout  = nullptr;
     QHBoxLayout *m_contentLayout = nullptr;

+ 6 - 0
QFD/widgets/DataCollectionWidget.cpp

@@ -0,0 +1,6 @@
+#include "DataCollectionWidget.h"
+
+DataCollectionWidget::DataCollectionWidget(QWidget *parent) : QWidget(parent)
+{
+
+}

+ 19 - 0
QFD/widgets/DataCollectionWidget.h

@@ -0,0 +1,19 @@
+#ifndef DATACOLLECTIONWIDGET_H
+#define DATACOLLECTIONWIDGET_H
+
+#include <QWidget>
+
+/**
+ * @brief The DataCollectionWidget class
+ * 数据采集
+ */
+class DataCollectionWidget : public QWidget
+{
+    Q_OBJECT
+public:
+    explicit DataCollectionWidget(QWidget *parent = nullptr);
+
+signals:
+};
+
+#endif  // DATACOLLECTIONWIDGET_H

+ 6 - 0
QFD/widgets/DataProcessingWidget.cpp

@@ -0,0 +1,6 @@
+#include "DataProcessingWidget.h"
+
+DataProcessingWidget::DataProcessingWidget(QWidget *parent) : QWidget(parent)
+{
+
+}

+ 19 - 0
QFD/widgets/DataProcessingWidget.h

@@ -0,0 +1,19 @@
+#ifndef DATAPROCESSINGWIDGET_H
+#define DATAPROCESSINGWIDGET_H
+
+#include <QWidget>
+
+/**
+ * @brief The DataProcessingWidget class
+ * 数据处理
+ */
+class DataProcessingWidget : public QWidget
+{
+    Q_OBJECT
+public:
+    explicit DataProcessingWidget(QWidget *parent = nullptr);
+
+signals:
+};
+
+#endif  // DATAPROCESSINGWIDGET_H

+ 6 - 0
QFD/widgets/EvalSchemeWidget.cpp

@@ -0,0 +1,6 @@
+#include "EvalSchemeWidget.h"
+
+EvalSchemeWidget::EvalSchemeWidget(QWidget *parent) : QWidget(parent)
+{
+
+}

+ 19 - 0
QFD/widgets/EvalSchemeWidget.h

@@ -0,0 +1,19 @@
+#ifndef EVALSCHEMEWIDGET_H
+#define EVALSCHEMEWIDGET_H
+
+#include <QWidget>
+
+/**
+ * @brief The EvalSchemeWidget class
+ * 评估方案
+ */
+class EvalSchemeWidget : public QWidget
+{
+    Q_OBJECT
+public:
+    explicit EvalSchemeWidget(QWidget *parent = nullptr);
+
+signals:
+};
+
+#endif  // EVALSCHEMEWIDGET_H

+ 6 - 0
QFD/widgets/IndexSystemWidget.cpp

@@ -0,0 +1,6 @@
+#include "IndexSystemWidget.h"
+
+IndexSystemWidget::IndexSystemWidget(QWidget *parent) : QWidget(parent)
+{
+
+}

+ 19 - 0
QFD/widgets/IndexSystemWidget.h

@@ -0,0 +1,19 @@
+#ifndef INDEXSYSTEMWIDGET_H
+#define INDEXSYSTEMWIDGET_H
+
+#include <QWidget>
+
+/**
+ * @brief The IndexSystemWidget class
+ * 指标体系
+ */
+class IndexSystemWidget : public QWidget
+{
+    Q_OBJECT
+public:
+    explicit IndexSystemWidget(QWidget *parent = nullptr);
+
+signals:
+};
+
+#endif  // INDEXSYSTEMWIDGET_H