Browse Source

修复灰色聚类数据采集页面crash。

Ulricy 1 year ago
parent
commit
3f189e5a13
2 changed files with 6 additions and 12 deletions
  1. 0 3
      QFD/widgets/DataCollectionWidget.cpp
  2. 6 9
      QFD/widgets/GreyClusteringConfigWidget.cpp

+ 0 - 3
QFD/widgets/DataCollectionWidget.cpp

@@ -106,14 +106,12 @@ void DataCollectionWidget::setupTabWidget()
         } else {
             return;
         }
-
         // 获取方案规划数据
         QList<SchemePlanManager::SchemeProcessInfo> processList;
         ret = SchemeProcessService().QueryAllByProjectIdAndIndexType(processList, m_proj->id, i);
         if (ret == false) {
             return;
         }
-
         ProjectManager::IndexType t = (ProjectManager::IndexType)i;
         QString indexName           = ProjectManager::nameOfIndexType(t);
 
@@ -225,7 +223,6 @@ void DataCollectionWidget::slotCalc()
         QString indexName   = ProjectManager::nameOfIndexType((ProjectManager::IndexType)table->process().indexType);
         QString processName = SchemePlanManager::processName(table->process());
         QString dataSource  = SchemePlanManager::stringFromDataSource(table->process().dSource);
-        qDebug() << __FUNCTION__ << __LINE__ << indexName << processName << dataSource << endl;
 
         /// 运行评估算法
         m_evaluator->setProcess(table->process());

+ 6 - 9
QFD/widgets/GreyClusteringConfigWidget.cpp

@@ -28,7 +28,6 @@ GreyClusteringConfigWidget::GreyClusteringConfigWidget(CMind *mind, int grayNumb
 
     m_model = new QStandardItemModel();
     ui->grayConfigTableView->setModel(m_model);
-
     ui->stackedWidget->setCurrentIndex(0);
     ui->grayNumber->setText(QString::number(grayNumber));
     initFormLayout();
@@ -319,10 +318,8 @@ void GreyClusteringConfigWidget::refreshTableView()
 
         t->setHorizontalHeader(hHeader);
     }
-
     m_model->setColumnCount(nodeDepth + 3 + m_grayNames.size());
     m_model->setRowCount(m_rowCount);
-
     // 其余的都可输入
     for (int r = 0; r < m_model->rowCount(); ++r) {
         for (int c = nodeDepth; c < m_model->columnCount(); ++c) {
@@ -331,7 +328,6 @@ void GreyClusteringConfigWidget::refreshTableView()
             m_model->setItem(r, c, s);
         }
     }
-
     for (auto &item : m_greyClusterings) {
         // 指标栏
         auto s = new QStandardItem(item.indexName);
@@ -342,7 +338,6 @@ void GreyClusteringConfigWidget::refreshTableView()
         if (item.rowSpan > 1 || item.colSpan > 1) {
             t->setSpan(item.row, item.col, item.rowSpan, item.colSpan);
         }
-
         if (!item.value.isNull()) {
             m_model->item(item.row, nodeDepth)->setText(item.value->units);  // 量纲
             m_model->item(item.row, nodeDepth)->setEditable(false);
@@ -354,15 +349,17 @@ void GreyClusteringConfigWidget::refreshTableView()
                                           .arg(item.value->greyRanges[r].rightValue)
                                           .arg((item.value->greyRanges[r].rightClose ? "]" : ")")));
             }
-            m_model->item(item.row, nodeDepth + m_grayNumber + 1)->setText(QString::number(item.value->leftExtension));
-            m_model->item(item.row, nodeDepth + m_grayNumber + 2)->setText(QString::number(item.value->rightExtension));
+            if (m_model->columnCount() > nodeDepth + m_grayNumber + 2) {
+                m_model->item(item.row, nodeDepth + m_grayNumber + 1)
+                        ->setText(QString::number(item.value->leftExtension));
+                m_model->item(item.row, nodeDepth + m_grayNumber + 2)
+                        ->setText(QString::number(item.value->rightExtension));
+            }
         }
     }
-
     for (int c = 0; c < m_grayNames.size(); ++c) {
         t->setItemDelegateForColumn(c + nodeDepth + 1, new GreyClusteringItemRangeDelegate(t));
     }
-
     for (int c = m_grayNames.size(); c < m_grayNames.size() + 2; ++c) {
         t->setItemDelegateForColumn(c + nodeDepth + 1, new GreyClusteringItemSpinDelegate(t));
     }