chengxr 1 year ago
parent
commit
b596ce6444

+ 10 - 13
QFD/widgets/ExpertListWidget.cpp

@@ -4,6 +4,8 @@
 #include <QListWidget>
 #include <QLabel>
 
+#include <QDebug>
+
 ExpertListWidget::ExpertListWidget(QWidget *parent) : QWidget(parent)
 {
     initialize();
@@ -21,24 +23,17 @@ void ExpertListWidget::refreshList()
         m_expertListWidget->addItem(item);
 
         QWidget *w = new QWidget();
-        w->setStyleSheet("border: 1px solid rgba(0, 0, 0, 0)");
-        if (i % 2 == 0) {
-            //            w->setStyleSheet("QWidget {background-color: rgb(250, 250, 250);border: 1px solid rgba(0, 0,
-            //            0, 0);}"
-            //                             "QLabel {border: 1px solid rgba(0, 0, 0, 0)}");
-        } else {
-            w->setStyleSheet("QWidget {background-color: rgb(244, 244, 255);border: 1px solid rgba(0, 0, 0, 0);}"
-                             "QLabel {border: 1px solid rgba(0, 0, 0, 0)}"
-                             "QWidget::hover {background-color: rgb(244, 244, 0);}");
-        }
         m_expertListWidget->setItemWidget(item, w);
 
         QHBoxLayout *hBox = new QHBoxLayout(w);
         hBox->setSpacing(0);
         hBox->setMargin(0);
-        hBox->addWidget(new QLabel(QString::number(i)));
+
+        QLabel *idx = new QLabel(QString::number(i));
+        hBox->addWidget(idx);
         hBox->addSpacing(10);
-        hBox->addWidget(new QLabel(QString("专家%1").arg(i)));
+        QLabel *name = new QLabel(QString("专家%1").arg(i));
+        hBox->addWidget(name);
         hBox->addStretch();
     }
 }
@@ -47,7 +42,9 @@ void ExpertListWidget::initialize()
 {
     m_vBoxLayout       = new QVBoxLayout(this);
     m_expertListWidget = new QListWidget(this);
-    m_expertListWidget->setStyleSheet("border: 1px solid rgba(0, 0, 0, 0.073)");
+    m_expertListWidget->setAlternatingRowColors(true);
+    m_expertListWidget->setStyleSheet("QListWidget {border: 1px solid rgba(0, 0, 0, 0.073);background: rgb(255, 255, "
+                                      "255);alternate-background-color: rgb(244, 244, 255);}");
 }
 
 void ExpertListWidget::initLayout()

+ 55 - 1
QFD/widgets/ProjectStateWidget.cpp

@@ -3,11 +3,15 @@
 #include <QTableWidget>
 #include <QHeaderView>
 #include <QBoxLayout>
+#include <QDateTime>
+
+#include <QDebug>
 
 ProjectStateWidget::ProjectStateWidget(QWidget *parent) : QWidget(parent)
 {
     initialize();
     initLayout();
+    refreshList();
 }
 
 void ProjectStateWidget::initialize()
@@ -23,10 +27,60 @@ void ProjectStateWidget::initialize()
     const QStringList headers = { "工程名", "工程类型", "专家信息", "评估状态" };
     m_projTableWidget->setColumnCount(headers.count());
     m_projTableWidget->setHorizontalHeaderLabels(headers);
-    m_projTableWidget->setStyleSheet("border: 1px solid rgba(0, 0, 0, 0.073)");
+    m_projTableWidget->setAlternatingRowColors(true);
+    m_projTableWidget->setStyleSheet(
+            "QTableWidget {border: 1px solid rgba(0, 0, 0, 0.073);background: rgb(244, 244, "
+            "255);alternate-background-color: rgb(255, 255, 255);}"
+            "QHeaderView::section{font-size: 14px;font:bold;font-family: 'Microsoft YaHei UI';}");
 }
 
 void ProjectStateWidget::initLayout()
 {
     layout()->addWidget(m_projTableWidget);
 }
+
+void ProjectStateWidget::refreshList()
+{
+    m_projTableWidget->clearContents();
+    int projCount = 10;
+
+    QStringList list = { "能力需求指标体系", "技术措施指标体系", "方案评估" };
+    int expertCount  = 3;
+
+    int rowCount = projCount * list.count() * expertCount;
+    m_projTableWidget->setRowCount(rowCount);
+
+    for (int i = 0; i < projCount; i++) {
+        int row                = i * list.count() * expertCount;
+        QTableWidgetItem *item = new QTableWidgetItem(QString("工程%1").arg(i + 1));
+        item->setFlags(Qt::ItemIsEnabled | Qt::ItemIsSelectable);
+        item->setTextAlignment(Qt::AlignCenter);
+        m_projTableWidget->setItem(row, 0, item);
+        m_projTableWidget->setSpan(row, 0, list.count() * expertCount, 1);
+
+        for (int j = 0; j < list.count(); j++) {
+            row                    = i * list.count() * expertCount + j * expertCount;
+            QTableWidgetItem *item = new QTableWidgetItem(list[j]);
+            item->setFlags(Qt::ItemIsEnabled | Qt::ItemIsSelectable);
+            item->setTextAlignment(Qt::AlignCenter);
+            m_projTableWidget->setItem(row, 1, item);
+            m_projTableWidget->setSpan(row, 1, expertCount, 1);
+
+            for (int k = 0; k < 3; k++) {
+                row                       = i * list.count() * expertCount + j * expertCount + k;
+                QTableWidgetItem *expItem = new QTableWidgetItem(QString("专家%1").arg(k + 1));
+                expItem->setFlags(Qt::ItemIsEnabled | Qt::ItemIsSelectable);
+                expItem->setTextAlignment(Qt::AlignCenter);
+                m_projTableWidget->setItem(row, 2, expItem);
+
+                unsigned seed = QDateTime::currentDateTime().toTime_t() + pow(row, 4);
+                srand(seed);
+                bool loaded                = (rand() % 4) == 0;
+                QTableWidgetItem *loadItem = new QTableWidgetItem(loaded ? "已录入" : "未录入");
+                loadItem->setFlags(Qt::ItemIsEnabled | Qt::ItemIsSelectable);
+                loadItem->setTextAlignment(Qt::AlignCenter);
+                m_projTableWidget->setItem(row, 3, loadItem);
+            }
+        }
+    }
+}

+ 2 - 0
QFD/widgets/ProjectStateWidget.h

@@ -21,6 +21,8 @@ private:
     void initialize();
     void initLayout();
 
+    void refreshList();
+
 private:
     QVBoxLayout *m_vBoxLayout = nullptr;