diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user index 73103be..162961a 100644 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user +++ b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user @@ -1,6 +1,6 @@ - + EnvironmentId @@ -299,7 +299,7 @@ false true - D:/dev/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_64_bit-Debug + 1 diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user index 73103be..162961a 100644 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user +++ b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user @@ -1,6 +1,6 @@ - + EnvironmentId @@ -299,7 +299,7 @@ false true - D:/dev/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_64_bit-Debug + 1 diff --git a/softwareDirectory/AutoVerScheme/checkwindow.cpp b/softwareDirectory/AutoVerScheme/checkwindow.cpp index 2f3e8c6..44aaa75 100644 --- a/softwareDirectory/AutoVerScheme/checkwindow.cpp +++ b/softwareDirectory/AutoVerScheme/checkwindow.cpp @@ -22,6 +22,11 @@ ui->tableWidget_3->verticalHeader()->setParent(nullptr); for(int i=0;i<2;i++) ui->tableWidget_3->horizontalHeader()->setSectionResizeMode(i,QHeaderView::Stretch); + ui->tableWidget_3->setSelectionBehavior(QAbstractItemView::SelectRows); + ui->tableWidget_Point->verticalHeader()->setParent(nullptr); + ui->tableWidget_Point->setColumnWidth(0, 60); + for(int i=1;i<3;i++) + ui->tableWidget_Point->horizontalHeader()->setSectionResizeMode(i,QHeaderView::Stretch); getCheckDevice(); //ui->stackedWidget_2->setCurrentIndex(1); //ui->tableWidgetDevice->verticalHeader()->sectionResizeMode(QHeaderView::Stretch); @@ -31,26 +36,30 @@ { myTaskList.clear(); programList.clear(); + connectList.clear(); + selectTaskList.clear(); delete ui; } void CheckWindow::showMethod() { + selectTaskList.clear(); QString ids; for(int i=0;itableWidgetDevice->rowCount();i++){ Qt::CheckState state = ui->tableWidgetDevice->item(i,0)->checkState(); if(state == Qt::Checked){ - if(ids=="") + selectTaskList.append(myTaskList[i]); + /*if(ids=="") ids = myTaskList[i].id; else - ids +=";"+ myTaskList[i].id; + ids +=";"+ myTaskList[i].id;*/ //break; } } - if(ids==""){ + if(selectTaskList.length()==0){ QMessageBox::warning(this, "提示", "请选择被检设备!"); }else{ - qDebug() << "select ids:" << ids; + //qDebug() << "select ids:" << ids; ui->stackedWidget->setCurrentIndex(1); getCheckMethod(); } @@ -86,20 +95,25 @@ QStringList idList; int rowCount=0; int row=0; + connectList.clear(); if(programInfo.tested_device_id!="") { idList = programInfo.tested_device_id.split(","); for(const QString& id : idList) { + ConnectInfo info; + info.state="未连接"; QList result = BaseCommonApi::getTestedCatDevice(id); if(result.length()>0){ - rowCount = ui->tableWidget_3->rowCount(); - - ui->tableWidget_3->insertRow(rowCount); - ui->tableWidget_3->setItem(row, 0, new QTableWidgetItem(result[0].equipment_name)); - ui->tableWidget_3->setItem(row, 1, new QTableWidgetItem("成功")); //设置数据 - row++; + info.deviceName = result[0].equipment_name; } + result.clear(); + QList addrList = BaseCommonApi::getVerificationProgramConfigInterface(id); + if(addrList.length()>0){ + info.programInterface = addrList[0]; + } + connectList.append(info); + addrList.clear(); } idList.clear(); } @@ -108,25 +122,133 @@ idList = programInfo.standard_device_id.split(","); for(const QString& id : idList) { + ConnectInfo info; + info.state="未连接"; QList result = BaseCommonApi::getCatDeviceInfor(id); if(result.length()>0){ - rowCount = ui->tableWidget_3->rowCount(); - - ui->tableWidget_3->insertRow(rowCount); - ui->tableWidget_3->setItem(row, 0, new QTableWidgetItem(result[0].equipment_name)); - ui->tableWidget_3->setItem(row, 1, new QTableWidgetItem("成功")); //设置数据 - row++; + info.deviceName = result[0].equipment_name; } + result.clear(); + QList addrList = BaseCommonApi::getVerificationProgramConfigInterface(id); + if(addrList.length()>0){ + info.programInterface = addrList[0]; + } + connectList.append(info); + addrList.clear(); } idList.clear(); } + for(const ConnectInfo& info : connectList){ + rowCount = ui->tableWidget_3->rowCount(); + ui->tableWidget_3->insertRow(rowCount); + ui->tableWidget_3->setItem(row, 0, new QTableWidgetItem(info.deviceName)); + ui->tableWidget_3->setItem(row, 1, new QTableWidgetItem(info.state)); //设置数据 + row++; + } + ui->tableWidget_3->selectRow(0); } void CheckWindow::showCheck() { + deleteItem(ui->horizontalLayout_14); + int idx=0; + for (const MyTask& task : selectTaskList) + { + QPushButton *btn_1 = new QPushButton(); + btn_1->setText(task.sample_name); + btn_1->setStyleSheet("QPushButton{" + "background-color:rgb(240,240,240);" + "color:rgb(51,51,51);" + "}"); + //btn_1->setSizePolicy(QSizePolicy::Preferred,QSizePolicy::Fixed); + QFont font; + font.setPointSize(12);//字体大小 + font.setBold(true); + btn_1->setFont(font); + btn_1->setCursor(Qt::PointingHandCursor); + connect(btn_1, &QPushButton::clicked, this, [this,task,idx]() { + on_deviceButton_clicked(task,idx); + }); + ui->horizontalLayout_14->addWidget(btn_1); + idx++; + } + on_deviceButton_clicked(selectTaskList[0],0); + ui->horizontalLayout_14->addStretch(); + + if(programInfo.tested_device_id!="") + { + QStringList idList=programInfo.tested_device_id.split(","); + QStringList headlist; + + QList Data=BaseCommonApi::Search_CalibrationTable(idList[0],&headlist); + + //tableWidgetItem + ui->tableWidget_Point->clearContents(); + ui->tableWidget_Point->setRowCount(0); + //循环数据 + int rowCount=0; + int row=0; + for (const QStringList& item : Data) + { + //获取行号 并进行添加行 + rowCount = ui->tableWidget_Point->rowCount(); + ui->tableWidget_Point->insertRow(rowCount); + QTableWidgetItem* p_check = new QTableWidgetItem(); + p_check->setCheckState(Qt::Unchecked); //设置首列为 CheckBox 控件 + ui->tableWidget_Point->setItem(row,0,p_check); + ui->tableWidget_Point->setItem(row, 1, new QTableWidgetItem(item[8])); + ui->tableWidget_Point->setItem(row, 2, new QTableWidgetItem("1")); + row++; + } + } + ui->stackedWidget_2->setCurrentIndex(1); } +void CheckWindow::on_deviceButton_clicked(MyTask task,int idx) +{ + for(int i=0;ihorizontalLayout_14->itemAt(i); + QPushButton *btn_1 = qobject_cast(child->widget()); + if(i==idx){ + btn_1->setStyleSheet("QPushButton{" + "background-color:rgb(55,83,123);" + "color:rgb(255,255,255);" + "}"); + }else{ + btn_1->setStyleSheet("QPushButton{" + "background-color:rgb(240,240,240);" + "color:rgb(51,51,51);" + "}"); + } + } + ui->label_21->setText(QString("设备名称: %1").arg(task.sample_name)); + ui->label_22->setText(QString("型号规格: %1").arg(task.sample_model)); + ui->label_23->setText(QString("出厂编号: %1").arg(task.manufacture_no)); + ui->label_24->setText(QString("生产厂家: %1").arg(task.manufacture_no)); +} + +void CheckWindow::deleteItem(QLayout *layout) +{ + QLayoutItem *child; + while ((child = layout->takeAt(0)) != nullptr) + { + //setParent为NULL,防止删除之后界面不消失 + if(child->widget()) + { + child->widget()->setParent(nullptr); + delete child->widget(); + } + else if (child->layout()) + { + deleteItem(child->layout()); + child->layout()->deleteLater(); + } + delete child; + } +} + + void CheckWindow::showMethodWidget() { ui->stackedWidget_2->setCurrentIndex(0); @@ -243,3 +365,26 @@ { showDevice(); } + +void CheckWindow::on_tableWidget_3_currentCellChanged(int currentRow, int currentColumn, int previousRow, int previousColumn) +{ + if(currentRow>=0&¤tRowradioButton_serial->setChecked(true); + else + ui->radioButton_visa->setChecked(true); + ui->comboBox_visa->setCurrentText(addr.visa); + if(addr.serial_port!=""){ + QStringList sList = addr.serial_port.split(";"); + if(sList.length()==5){ + ui->comboBox_port->setCurrentText(sList[0]); + ui->comboBox_baurt->setCurrentText(sList[1]); + ui->comboBox_check->setCurrentText(sList[2]); + ui->comboBox_data->setCurrentText(sList[3]); + ui->comboBox_stop->setCurrentText(sList[4]); + } + } + } +} diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user index 73103be..162961a 100644 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user +++ b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user @@ -1,6 +1,6 @@ - + EnvironmentId @@ -299,7 +299,7 @@ false true - D:/dev/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_64_bit-Debug + 1 diff --git a/softwareDirectory/AutoVerScheme/checkwindow.cpp b/softwareDirectory/AutoVerScheme/checkwindow.cpp index 2f3e8c6..44aaa75 100644 --- a/softwareDirectory/AutoVerScheme/checkwindow.cpp +++ b/softwareDirectory/AutoVerScheme/checkwindow.cpp @@ -22,6 +22,11 @@ ui->tableWidget_3->verticalHeader()->setParent(nullptr); for(int i=0;i<2;i++) ui->tableWidget_3->horizontalHeader()->setSectionResizeMode(i,QHeaderView::Stretch); + ui->tableWidget_3->setSelectionBehavior(QAbstractItemView::SelectRows); + ui->tableWidget_Point->verticalHeader()->setParent(nullptr); + ui->tableWidget_Point->setColumnWidth(0, 60); + for(int i=1;i<3;i++) + ui->tableWidget_Point->horizontalHeader()->setSectionResizeMode(i,QHeaderView::Stretch); getCheckDevice(); //ui->stackedWidget_2->setCurrentIndex(1); //ui->tableWidgetDevice->verticalHeader()->sectionResizeMode(QHeaderView::Stretch); @@ -31,26 +36,30 @@ { myTaskList.clear(); programList.clear(); + connectList.clear(); + selectTaskList.clear(); delete ui; } void CheckWindow::showMethod() { + selectTaskList.clear(); QString ids; for(int i=0;itableWidgetDevice->rowCount();i++){ Qt::CheckState state = ui->tableWidgetDevice->item(i,0)->checkState(); if(state == Qt::Checked){ - if(ids=="") + selectTaskList.append(myTaskList[i]); + /*if(ids=="") ids = myTaskList[i].id; else - ids +=";"+ myTaskList[i].id; + ids +=";"+ myTaskList[i].id;*/ //break; } } - if(ids==""){ + if(selectTaskList.length()==0){ QMessageBox::warning(this, "提示", "请选择被检设备!"); }else{ - qDebug() << "select ids:" << ids; + //qDebug() << "select ids:" << ids; ui->stackedWidget->setCurrentIndex(1); getCheckMethod(); } @@ -86,20 +95,25 @@ QStringList idList; int rowCount=0; int row=0; + connectList.clear(); if(programInfo.tested_device_id!="") { idList = programInfo.tested_device_id.split(","); for(const QString& id : idList) { + ConnectInfo info; + info.state="未连接"; QList result = BaseCommonApi::getTestedCatDevice(id); if(result.length()>0){ - rowCount = ui->tableWidget_3->rowCount(); - - ui->tableWidget_3->insertRow(rowCount); - ui->tableWidget_3->setItem(row, 0, new QTableWidgetItem(result[0].equipment_name)); - ui->tableWidget_3->setItem(row, 1, new QTableWidgetItem("成功")); //设置数据 - row++; + info.deviceName = result[0].equipment_name; } + result.clear(); + QList addrList = BaseCommonApi::getVerificationProgramConfigInterface(id); + if(addrList.length()>0){ + info.programInterface = addrList[0]; + } + connectList.append(info); + addrList.clear(); } idList.clear(); } @@ -108,25 +122,133 @@ idList = programInfo.standard_device_id.split(","); for(const QString& id : idList) { + ConnectInfo info; + info.state="未连接"; QList result = BaseCommonApi::getCatDeviceInfor(id); if(result.length()>0){ - rowCount = ui->tableWidget_3->rowCount(); - - ui->tableWidget_3->insertRow(rowCount); - ui->tableWidget_3->setItem(row, 0, new QTableWidgetItem(result[0].equipment_name)); - ui->tableWidget_3->setItem(row, 1, new QTableWidgetItem("成功")); //设置数据 - row++; + info.deviceName = result[0].equipment_name; } + result.clear(); + QList addrList = BaseCommonApi::getVerificationProgramConfigInterface(id); + if(addrList.length()>0){ + info.programInterface = addrList[0]; + } + connectList.append(info); + addrList.clear(); } idList.clear(); } + for(const ConnectInfo& info : connectList){ + rowCount = ui->tableWidget_3->rowCount(); + ui->tableWidget_3->insertRow(rowCount); + ui->tableWidget_3->setItem(row, 0, new QTableWidgetItem(info.deviceName)); + ui->tableWidget_3->setItem(row, 1, new QTableWidgetItem(info.state)); //设置数据 + row++; + } + ui->tableWidget_3->selectRow(0); } void CheckWindow::showCheck() { + deleteItem(ui->horizontalLayout_14); + int idx=0; + for (const MyTask& task : selectTaskList) + { + QPushButton *btn_1 = new QPushButton(); + btn_1->setText(task.sample_name); + btn_1->setStyleSheet("QPushButton{" + "background-color:rgb(240,240,240);" + "color:rgb(51,51,51);" + "}"); + //btn_1->setSizePolicy(QSizePolicy::Preferred,QSizePolicy::Fixed); + QFont font; + font.setPointSize(12);//字体大小 + font.setBold(true); + btn_1->setFont(font); + btn_1->setCursor(Qt::PointingHandCursor); + connect(btn_1, &QPushButton::clicked, this, [this,task,idx]() { + on_deviceButton_clicked(task,idx); + }); + ui->horizontalLayout_14->addWidget(btn_1); + idx++; + } + on_deviceButton_clicked(selectTaskList[0],0); + ui->horizontalLayout_14->addStretch(); + + if(programInfo.tested_device_id!="") + { + QStringList idList=programInfo.tested_device_id.split(","); + QStringList headlist; + + QList Data=BaseCommonApi::Search_CalibrationTable(idList[0],&headlist); + + //tableWidgetItem + ui->tableWidget_Point->clearContents(); + ui->tableWidget_Point->setRowCount(0); + //循环数据 + int rowCount=0; + int row=0; + for (const QStringList& item : Data) + { + //获取行号 并进行添加行 + rowCount = ui->tableWidget_Point->rowCount(); + ui->tableWidget_Point->insertRow(rowCount); + QTableWidgetItem* p_check = new QTableWidgetItem(); + p_check->setCheckState(Qt::Unchecked); //设置首列为 CheckBox 控件 + ui->tableWidget_Point->setItem(row,0,p_check); + ui->tableWidget_Point->setItem(row, 1, new QTableWidgetItem(item[8])); + ui->tableWidget_Point->setItem(row, 2, new QTableWidgetItem("1")); + row++; + } + } + ui->stackedWidget_2->setCurrentIndex(1); } +void CheckWindow::on_deviceButton_clicked(MyTask task,int idx) +{ + for(int i=0;ihorizontalLayout_14->itemAt(i); + QPushButton *btn_1 = qobject_cast(child->widget()); + if(i==idx){ + btn_1->setStyleSheet("QPushButton{" + "background-color:rgb(55,83,123);" + "color:rgb(255,255,255);" + "}"); + }else{ + btn_1->setStyleSheet("QPushButton{" + "background-color:rgb(240,240,240);" + "color:rgb(51,51,51);" + "}"); + } + } + ui->label_21->setText(QString("设备名称: %1").arg(task.sample_name)); + ui->label_22->setText(QString("型号规格: %1").arg(task.sample_model)); + ui->label_23->setText(QString("出厂编号: %1").arg(task.manufacture_no)); + ui->label_24->setText(QString("生产厂家: %1").arg(task.manufacture_no)); +} + +void CheckWindow::deleteItem(QLayout *layout) +{ + QLayoutItem *child; + while ((child = layout->takeAt(0)) != nullptr) + { + //setParent为NULL,防止删除之后界面不消失 + if(child->widget()) + { + child->widget()->setParent(nullptr); + delete child->widget(); + } + else if (child->layout()) + { + deleteItem(child->layout()); + child->layout()->deleteLater(); + } + delete child; + } +} + + void CheckWindow::showMethodWidget() { ui->stackedWidget_2->setCurrentIndex(0); @@ -243,3 +365,26 @@ { showDevice(); } + +void CheckWindow::on_tableWidget_3_currentCellChanged(int currentRow, int currentColumn, int previousRow, int previousColumn) +{ + if(currentRow>=0&¤tRowradioButton_serial->setChecked(true); + else + ui->radioButton_visa->setChecked(true); + ui->comboBox_visa->setCurrentText(addr.visa); + if(addr.serial_port!=""){ + QStringList sList = addr.serial_port.split(";"); + if(sList.length()==5){ + ui->comboBox_port->setCurrentText(sList[0]); + ui->comboBox_baurt->setCurrentText(sList[1]); + ui->comboBox_check->setCurrentText(sList[2]); + ui->comboBox_data->setCurrentText(sList[3]); + ui->comboBox_stop->setCurrentText(sList[4]); + } + } + } +} diff --git a/softwareDirectory/AutoVerScheme/checkwindow.h b/softwareDirectory/AutoVerScheme/checkwindow.h index d3fa0c3..8cfaaf3 100644 --- a/softwareDirectory/AutoVerScheme/checkwindow.h +++ b/softwareDirectory/AutoVerScheme/checkwindow.h @@ -8,6 +8,13 @@ class CheckWindow; } +class ConnectInfo { +public: + QString deviceName; + QString state; + VerificationProgramConfigInterface programInterface; +}; + class CheckWindow : public QWidget { Q_OBJECT @@ -28,15 +35,20 @@ void on_pushButton_9_clicked(); + void on_tableWidget_3_currentCellChanged(int currentRow, int currentColumn, int previousRow, int previousColumn); + void on_deviceButton_clicked(MyTask task,int idx); private: void getCheckDevice(); void getCheckMethod(); void initDeviceInfo(); + void deleteItem(QLayout *layout); private: Ui::CheckWindow *ui; QList programList; QList myTaskList; + QList selectTaskList; VerificationProgramInfo programInfo; + QList connectList; }; #endif // CHECKWINDOW_H diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user index 73103be..162961a 100644 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user +++ b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user @@ -1,6 +1,6 @@ - + EnvironmentId @@ -299,7 +299,7 @@ false true - D:/dev/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_64_bit-Debug + 1 diff --git a/softwareDirectory/AutoVerScheme/checkwindow.cpp b/softwareDirectory/AutoVerScheme/checkwindow.cpp index 2f3e8c6..44aaa75 100644 --- a/softwareDirectory/AutoVerScheme/checkwindow.cpp +++ b/softwareDirectory/AutoVerScheme/checkwindow.cpp @@ -22,6 +22,11 @@ ui->tableWidget_3->verticalHeader()->setParent(nullptr); for(int i=0;i<2;i++) ui->tableWidget_3->horizontalHeader()->setSectionResizeMode(i,QHeaderView::Stretch); + ui->tableWidget_3->setSelectionBehavior(QAbstractItemView::SelectRows); + ui->tableWidget_Point->verticalHeader()->setParent(nullptr); + ui->tableWidget_Point->setColumnWidth(0, 60); + for(int i=1;i<3;i++) + ui->tableWidget_Point->horizontalHeader()->setSectionResizeMode(i,QHeaderView::Stretch); getCheckDevice(); //ui->stackedWidget_2->setCurrentIndex(1); //ui->tableWidgetDevice->verticalHeader()->sectionResizeMode(QHeaderView::Stretch); @@ -31,26 +36,30 @@ { myTaskList.clear(); programList.clear(); + connectList.clear(); + selectTaskList.clear(); delete ui; } void CheckWindow::showMethod() { + selectTaskList.clear(); QString ids; for(int i=0;itableWidgetDevice->rowCount();i++){ Qt::CheckState state = ui->tableWidgetDevice->item(i,0)->checkState(); if(state == Qt::Checked){ - if(ids=="") + selectTaskList.append(myTaskList[i]); + /*if(ids=="") ids = myTaskList[i].id; else - ids +=";"+ myTaskList[i].id; + ids +=";"+ myTaskList[i].id;*/ //break; } } - if(ids==""){ + if(selectTaskList.length()==0){ QMessageBox::warning(this, "提示", "请选择被检设备!"); }else{ - qDebug() << "select ids:" << ids; + //qDebug() << "select ids:" << ids; ui->stackedWidget->setCurrentIndex(1); getCheckMethod(); } @@ -86,20 +95,25 @@ QStringList idList; int rowCount=0; int row=0; + connectList.clear(); if(programInfo.tested_device_id!="") { idList = programInfo.tested_device_id.split(","); for(const QString& id : idList) { + ConnectInfo info; + info.state="未连接"; QList result = BaseCommonApi::getTestedCatDevice(id); if(result.length()>0){ - rowCount = ui->tableWidget_3->rowCount(); - - ui->tableWidget_3->insertRow(rowCount); - ui->tableWidget_3->setItem(row, 0, new QTableWidgetItem(result[0].equipment_name)); - ui->tableWidget_3->setItem(row, 1, new QTableWidgetItem("成功")); //设置数据 - row++; + info.deviceName = result[0].equipment_name; } + result.clear(); + QList addrList = BaseCommonApi::getVerificationProgramConfigInterface(id); + if(addrList.length()>0){ + info.programInterface = addrList[0]; + } + connectList.append(info); + addrList.clear(); } idList.clear(); } @@ -108,25 +122,133 @@ idList = programInfo.standard_device_id.split(","); for(const QString& id : idList) { + ConnectInfo info; + info.state="未连接"; QList result = BaseCommonApi::getCatDeviceInfor(id); if(result.length()>0){ - rowCount = ui->tableWidget_3->rowCount(); - - ui->tableWidget_3->insertRow(rowCount); - ui->tableWidget_3->setItem(row, 0, new QTableWidgetItem(result[0].equipment_name)); - ui->tableWidget_3->setItem(row, 1, new QTableWidgetItem("成功")); //设置数据 - row++; + info.deviceName = result[0].equipment_name; } + result.clear(); + QList addrList = BaseCommonApi::getVerificationProgramConfigInterface(id); + if(addrList.length()>0){ + info.programInterface = addrList[0]; + } + connectList.append(info); + addrList.clear(); } idList.clear(); } + for(const ConnectInfo& info : connectList){ + rowCount = ui->tableWidget_3->rowCount(); + ui->tableWidget_3->insertRow(rowCount); + ui->tableWidget_3->setItem(row, 0, new QTableWidgetItem(info.deviceName)); + ui->tableWidget_3->setItem(row, 1, new QTableWidgetItem(info.state)); //设置数据 + row++; + } + ui->tableWidget_3->selectRow(0); } void CheckWindow::showCheck() { + deleteItem(ui->horizontalLayout_14); + int idx=0; + for (const MyTask& task : selectTaskList) + { + QPushButton *btn_1 = new QPushButton(); + btn_1->setText(task.sample_name); + btn_1->setStyleSheet("QPushButton{" + "background-color:rgb(240,240,240);" + "color:rgb(51,51,51);" + "}"); + //btn_1->setSizePolicy(QSizePolicy::Preferred,QSizePolicy::Fixed); + QFont font; + font.setPointSize(12);//字体大小 + font.setBold(true); + btn_1->setFont(font); + btn_1->setCursor(Qt::PointingHandCursor); + connect(btn_1, &QPushButton::clicked, this, [this,task,idx]() { + on_deviceButton_clicked(task,idx); + }); + ui->horizontalLayout_14->addWidget(btn_1); + idx++; + } + on_deviceButton_clicked(selectTaskList[0],0); + ui->horizontalLayout_14->addStretch(); + + if(programInfo.tested_device_id!="") + { + QStringList idList=programInfo.tested_device_id.split(","); + QStringList headlist; + + QList Data=BaseCommonApi::Search_CalibrationTable(idList[0],&headlist); + + //tableWidgetItem + ui->tableWidget_Point->clearContents(); + ui->tableWidget_Point->setRowCount(0); + //循环数据 + int rowCount=0; + int row=0; + for (const QStringList& item : Data) + { + //获取行号 并进行添加行 + rowCount = ui->tableWidget_Point->rowCount(); + ui->tableWidget_Point->insertRow(rowCount); + QTableWidgetItem* p_check = new QTableWidgetItem(); + p_check->setCheckState(Qt::Unchecked); //设置首列为 CheckBox 控件 + ui->tableWidget_Point->setItem(row,0,p_check); + ui->tableWidget_Point->setItem(row, 1, new QTableWidgetItem(item[8])); + ui->tableWidget_Point->setItem(row, 2, new QTableWidgetItem("1")); + row++; + } + } + ui->stackedWidget_2->setCurrentIndex(1); } +void CheckWindow::on_deviceButton_clicked(MyTask task,int idx) +{ + for(int i=0;ihorizontalLayout_14->itemAt(i); + QPushButton *btn_1 = qobject_cast(child->widget()); + if(i==idx){ + btn_1->setStyleSheet("QPushButton{" + "background-color:rgb(55,83,123);" + "color:rgb(255,255,255);" + "}"); + }else{ + btn_1->setStyleSheet("QPushButton{" + "background-color:rgb(240,240,240);" + "color:rgb(51,51,51);" + "}"); + } + } + ui->label_21->setText(QString("设备名称: %1").arg(task.sample_name)); + ui->label_22->setText(QString("型号规格: %1").arg(task.sample_model)); + ui->label_23->setText(QString("出厂编号: %1").arg(task.manufacture_no)); + ui->label_24->setText(QString("生产厂家: %1").arg(task.manufacture_no)); +} + +void CheckWindow::deleteItem(QLayout *layout) +{ + QLayoutItem *child; + while ((child = layout->takeAt(0)) != nullptr) + { + //setParent为NULL,防止删除之后界面不消失 + if(child->widget()) + { + child->widget()->setParent(nullptr); + delete child->widget(); + } + else if (child->layout()) + { + deleteItem(child->layout()); + child->layout()->deleteLater(); + } + delete child; + } +} + + void CheckWindow::showMethodWidget() { ui->stackedWidget_2->setCurrentIndex(0); @@ -243,3 +365,26 @@ { showDevice(); } + +void CheckWindow::on_tableWidget_3_currentCellChanged(int currentRow, int currentColumn, int previousRow, int previousColumn) +{ + if(currentRow>=0&¤tRowradioButton_serial->setChecked(true); + else + ui->radioButton_visa->setChecked(true); + ui->comboBox_visa->setCurrentText(addr.visa); + if(addr.serial_port!=""){ + QStringList sList = addr.serial_port.split(";"); + if(sList.length()==5){ + ui->comboBox_port->setCurrentText(sList[0]); + ui->comboBox_baurt->setCurrentText(sList[1]); + ui->comboBox_check->setCurrentText(sList[2]); + ui->comboBox_data->setCurrentText(sList[3]); + ui->comboBox_stop->setCurrentText(sList[4]); + } + } + } +} diff --git a/softwareDirectory/AutoVerScheme/checkwindow.h b/softwareDirectory/AutoVerScheme/checkwindow.h index d3fa0c3..8cfaaf3 100644 --- a/softwareDirectory/AutoVerScheme/checkwindow.h +++ b/softwareDirectory/AutoVerScheme/checkwindow.h @@ -8,6 +8,13 @@ class CheckWindow; } +class ConnectInfo { +public: + QString deviceName; + QString state; + VerificationProgramConfigInterface programInterface; +}; + class CheckWindow : public QWidget { Q_OBJECT @@ -28,15 +35,20 @@ void on_pushButton_9_clicked(); + void on_tableWidget_3_currentCellChanged(int currentRow, int currentColumn, int previousRow, int previousColumn); + void on_deviceButton_clicked(MyTask task,int idx); private: void getCheckDevice(); void getCheckMethod(); void initDeviceInfo(); + void deleteItem(QLayout *layout); private: Ui::CheckWindow *ui; QList programList; QList myTaskList; + QList selectTaskList; VerificationProgramInfo programInfo; + QList connectList; }; #endif // CHECKWINDOW_H diff --git a/softwareDirectory/AutoVerScheme/checkwindow.ui b/softwareDirectory/AutoVerScheme/checkwindow.ui index c486dcf..d8d6a52 100644 --- a/softwareDirectory/AutoVerScheme/checkwindow.ui +++ b/softwareDirectory/AutoVerScheme/checkwindow.ui @@ -272,6 +272,9 @@ + + QAbstractItemView::NoEditTriggers + true @@ -582,6 +585,9 @@ + + QAbstractItemView::NoEditTriggers + true @@ -729,6 +735,9 @@ + + QAbstractItemView::NoEditTriggers + 设备名称 @@ -808,7 +817,7 @@ - + 12 @@ -832,7 +841,7 @@ - + 12 @@ -856,7 +865,7 @@ - + 12 @@ -911,7 +920,7 @@ - + 12 @@ -947,7 +956,7 @@ - + 12 @@ -981,7 +990,7 @@ - + 12 @@ -1013,7 +1022,7 @@ - + 12 @@ -1025,7 +1034,7 @@ - + 12 @@ -1059,9 +1068,10 @@ 0 - + + 12 75 true @@ -1083,9 +1093,10 @@ - + + 12 75 true @@ -1107,9 +1118,10 @@ - + + 12 75 true @@ -1131,9 +1143,10 @@ - + + 12 75 true @@ -1155,9 +1168,10 @@ - + + 12 75 true @@ -1193,6 +1207,13 @@ + + + 12 + 75 + true + + 环境温度: @@ -1200,6 +1221,13 @@ + + + 12 + 75 + true + + 20℃ @@ -1207,6 +1235,13 @@ + + + 12 + 75 + true + + 环境湿度: @@ -1214,6 +1249,13 @@ + + + 12 + 75 + true + + 50%RH @@ -1227,6 +1269,13 @@ + + + 12 + 75 + true + + 状态面板 @@ -1234,6 +1283,13 @@ + + + 12 + 75 + true + + 标准设备面板 @@ -1242,17 +1298,304 @@ - - - -1 + + + + 0 + 0 + + + + 12 + + + + + 2 + + + + + + + + + + 12 + 75 + true + + + + 设备名称: + + + + + + + + 12 + 75 + true + + + + 型号规格: + + + + + + + + 12 + 75 + true + + + + 出厂编号: + + + + + + + + 12 + 75 + true + + + + 生产厂家: + + + + + + + + + background-color: rgb(55, 83, 123); + + + + + + + 0 + 0 + + + + + 24 + 24 + + + + image: url(:/image/Index/u642.svg); + + + + + + + + + + + 12 + 75 + true + + + + color: rgb(255, 255, 255); + + + 外观及功能性检查 + + + + + + + + + + + + + + 12 + + + + + + 12 + + + + + + + 合格 + + + + + + + + 12 + + + + + + + 外观完好,工作正常 + + + + + + + + + + background-color: rgb(55, 83, 123); + + + + + + + 0 + 0 + + + + + 24 + 24 + + + + image: url(:/image/Index/u642.svg); + + + + + + + + + + + 12 + 75 + true + + + + color: rgb(255, 255, 255); + + + 检定数据 + + + + + + + + + + + + + 12 + 75 + true + + 检定设置面板 + + + + + + 选择 + + + + 12 + 75 + true + + + + + + 检定点 + + + + 12 + 75 + true + + + + + + 循环次数 + + + + 12 + 75 + true + + + + + + + + + + 12 + 75 + true + + + + color: rgb(255, 255, 255); +background-color: rgb(55, 83, 123); +padding:10px; + + + 运行提示 + + + + + + + @@ -1298,7 +1641,7 @@ - pushButton_8 + pushButton_close clicked() CheckWindow showMethodWidget() @@ -1314,7 +1657,7 @@ - pushButton_7 + pushButton_save clicked() CheckWindow showResult() diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user index 73103be..162961a 100644 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user +++ b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user @@ -1,6 +1,6 @@ - + EnvironmentId @@ -299,7 +299,7 @@ false true - D:/dev/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_64_bit-Debug + 1 diff --git a/softwareDirectory/AutoVerScheme/checkwindow.cpp b/softwareDirectory/AutoVerScheme/checkwindow.cpp index 2f3e8c6..44aaa75 100644 --- a/softwareDirectory/AutoVerScheme/checkwindow.cpp +++ b/softwareDirectory/AutoVerScheme/checkwindow.cpp @@ -22,6 +22,11 @@ ui->tableWidget_3->verticalHeader()->setParent(nullptr); for(int i=0;i<2;i++) ui->tableWidget_3->horizontalHeader()->setSectionResizeMode(i,QHeaderView::Stretch); + ui->tableWidget_3->setSelectionBehavior(QAbstractItemView::SelectRows); + ui->tableWidget_Point->verticalHeader()->setParent(nullptr); + ui->tableWidget_Point->setColumnWidth(0, 60); + for(int i=1;i<3;i++) + ui->tableWidget_Point->horizontalHeader()->setSectionResizeMode(i,QHeaderView::Stretch); getCheckDevice(); //ui->stackedWidget_2->setCurrentIndex(1); //ui->tableWidgetDevice->verticalHeader()->sectionResizeMode(QHeaderView::Stretch); @@ -31,26 +36,30 @@ { myTaskList.clear(); programList.clear(); + connectList.clear(); + selectTaskList.clear(); delete ui; } void CheckWindow::showMethod() { + selectTaskList.clear(); QString ids; for(int i=0;itableWidgetDevice->rowCount();i++){ Qt::CheckState state = ui->tableWidgetDevice->item(i,0)->checkState(); if(state == Qt::Checked){ - if(ids=="") + selectTaskList.append(myTaskList[i]); + /*if(ids=="") ids = myTaskList[i].id; else - ids +=";"+ myTaskList[i].id; + ids +=";"+ myTaskList[i].id;*/ //break; } } - if(ids==""){ + if(selectTaskList.length()==0){ QMessageBox::warning(this, "提示", "请选择被检设备!"); }else{ - qDebug() << "select ids:" << ids; + //qDebug() << "select ids:" << ids; ui->stackedWidget->setCurrentIndex(1); getCheckMethod(); } @@ -86,20 +95,25 @@ QStringList idList; int rowCount=0; int row=0; + connectList.clear(); if(programInfo.tested_device_id!="") { idList = programInfo.tested_device_id.split(","); for(const QString& id : idList) { + ConnectInfo info; + info.state="未连接"; QList result = BaseCommonApi::getTestedCatDevice(id); if(result.length()>0){ - rowCount = ui->tableWidget_3->rowCount(); - - ui->tableWidget_3->insertRow(rowCount); - ui->tableWidget_3->setItem(row, 0, new QTableWidgetItem(result[0].equipment_name)); - ui->tableWidget_3->setItem(row, 1, new QTableWidgetItem("成功")); //设置数据 - row++; + info.deviceName = result[0].equipment_name; } + result.clear(); + QList addrList = BaseCommonApi::getVerificationProgramConfigInterface(id); + if(addrList.length()>0){ + info.programInterface = addrList[0]; + } + connectList.append(info); + addrList.clear(); } idList.clear(); } @@ -108,25 +122,133 @@ idList = programInfo.standard_device_id.split(","); for(const QString& id : idList) { + ConnectInfo info; + info.state="未连接"; QList result = BaseCommonApi::getCatDeviceInfor(id); if(result.length()>0){ - rowCount = ui->tableWidget_3->rowCount(); - - ui->tableWidget_3->insertRow(rowCount); - ui->tableWidget_3->setItem(row, 0, new QTableWidgetItem(result[0].equipment_name)); - ui->tableWidget_3->setItem(row, 1, new QTableWidgetItem("成功")); //设置数据 - row++; + info.deviceName = result[0].equipment_name; } + result.clear(); + QList addrList = BaseCommonApi::getVerificationProgramConfigInterface(id); + if(addrList.length()>0){ + info.programInterface = addrList[0]; + } + connectList.append(info); + addrList.clear(); } idList.clear(); } + for(const ConnectInfo& info : connectList){ + rowCount = ui->tableWidget_3->rowCount(); + ui->tableWidget_3->insertRow(rowCount); + ui->tableWidget_3->setItem(row, 0, new QTableWidgetItem(info.deviceName)); + ui->tableWidget_3->setItem(row, 1, new QTableWidgetItem(info.state)); //设置数据 + row++; + } + ui->tableWidget_3->selectRow(0); } void CheckWindow::showCheck() { + deleteItem(ui->horizontalLayout_14); + int idx=0; + for (const MyTask& task : selectTaskList) + { + QPushButton *btn_1 = new QPushButton(); + btn_1->setText(task.sample_name); + btn_1->setStyleSheet("QPushButton{" + "background-color:rgb(240,240,240);" + "color:rgb(51,51,51);" + "}"); + //btn_1->setSizePolicy(QSizePolicy::Preferred,QSizePolicy::Fixed); + QFont font; + font.setPointSize(12);//字体大小 + font.setBold(true); + btn_1->setFont(font); + btn_1->setCursor(Qt::PointingHandCursor); + connect(btn_1, &QPushButton::clicked, this, [this,task,idx]() { + on_deviceButton_clicked(task,idx); + }); + ui->horizontalLayout_14->addWidget(btn_1); + idx++; + } + on_deviceButton_clicked(selectTaskList[0],0); + ui->horizontalLayout_14->addStretch(); + + if(programInfo.tested_device_id!="") + { + QStringList idList=programInfo.tested_device_id.split(","); + QStringList headlist; + + QList Data=BaseCommonApi::Search_CalibrationTable(idList[0],&headlist); + + //tableWidgetItem + ui->tableWidget_Point->clearContents(); + ui->tableWidget_Point->setRowCount(0); + //循环数据 + int rowCount=0; + int row=0; + for (const QStringList& item : Data) + { + //获取行号 并进行添加行 + rowCount = ui->tableWidget_Point->rowCount(); + ui->tableWidget_Point->insertRow(rowCount); + QTableWidgetItem* p_check = new QTableWidgetItem(); + p_check->setCheckState(Qt::Unchecked); //设置首列为 CheckBox 控件 + ui->tableWidget_Point->setItem(row,0,p_check); + ui->tableWidget_Point->setItem(row, 1, new QTableWidgetItem(item[8])); + ui->tableWidget_Point->setItem(row, 2, new QTableWidgetItem("1")); + row++; + } + } + ui->stackedWidget_2->setCurrentIndex(1); } +void CheckWindow::on_deviceButton_clicked(MyTask task,int idx) +{ + for(int i=0;ihorizontalLayout_14->itemAt(i); + QPushButton *btn_1 = qobject_cast(child->widget()); + if(i==idx){ + btn_1->setStyleSheet("QPushButton{" + "background-color:rgb(55,83,123);" + "color:rgb(255,255,255);" + "}"); + }else{ + btn_1->setStyleSheet("QPushButton{" + "background-color:rgb(240,240,240);" + "color:rgb(51,51,51);" + "}"); + } + } + ui->label_21->setText(QString("设备名称: %1").arg(task.sample_name)); + ui->label_22->setText(QString("型号规格: %1").arg(task.sample_model)); + ui->label_23->setText(QString("出厂编号: %1").arg(task.manufacture_no)); + ui->label_24->setText(QString("生产厂家: %1").arg(task.manufacture_no)); +} + +void CheckWindow::deleteItem(QLayout *layout) +{ + QLayoutItem *child; + while ((child = layout->takeAt(0)) != nullptr) + { + //setParent为NULL,防止删除之后界面不消失 + if(child->widget()) + { + child->widget()->setParent(nullptr); + delete child->widget(); + } + else if (child->layout()) + { + deleteItem(child->layout()); + child->layout()->deleteLater(); + } + delete child; + } +} + + void CheckWindow::showMethodWidget() { ui->stackedWidget_2->setCurrentIndex(0); @@ -243,3 +365,26 @@ { showDevice(); } + +void CheckWindow::on_tableWidget_3_currentCellChanged(int currentRow, int currentColumn, int previousRow, int previousColumn) +{ + if(currentRow>=0&¤tRowradioButton_serial->setChecked(true); + else + ui->radioButton_visa->setChecked(true); + ui->comboBox_visa->setCurrentText(addr.visa); + if(addr.serial_port!=""){ + QStringList sList = addr.serial_port.split(";"); + if(sList.length()==5){ + ui->comboBox_port->setCurrentText(sList[0]); + ui->comboBox_baurt->setCurrentText(sList[1]); + ui->comboBox_check->setCurrentText(sList[2]); + ui->comboBox_data->setCurrentText(sList[3]); + ui->comboBox_stop->setCurrentText(sList[4]); + } + } + } +} diff --git a/softwareDirectory/AutoVerScheme/checkwindow.h b/softwareDirectory/AutoVerScheme/checkwindow.h index d3fa0c3..8cfaaf3 100644 --- a/softwareDirectory/AutoVerScheme/checkwindow.h +++ b/softwareDirectory/AutoVerScheme/checkwindow.h @@ -8,6 +8,13 @@ class CheckWindow; } +class ConnectInfo { +public: + QString deviceName; + QString state; + VerificationProgramConfigInterface programInterface; +}; + class CheckWindow : public QWidget { Q_OBJECT @@ -28,15 +35,20 @@ void on_pushButton_9_clicked(); + void on_tableWidget_3_currentCellChanged(int currentRow, int currentColumn, int previousRow, int previousColumn); + void on_deviceButton_clicked(MyTask task,int idx); private: void getCheckDevice(); void getCheckMethod(); void initDeviceInfo(); + void deleteItem(QLayout *layout); private: Ui::CheckWindow *ui; QList programList; QList myTaskList; + QList selectTaskList; VerificationProgramInfo programInfo; + QList connectList; }; #endif // CHECKWINDOW_H diff --git a/softwareDirectory/AutoVerScheme/checkwindow.ui b/softwareDirectory/AutoVerScheme/checkwindow.ui index c486dcf..d8d6a52 100644 --- a/softwareDirectory/AutoVerScheme/checkwindow.ui +++ b/softwareDirectory/AutoVerScheme/checkwindow.ui @@ -272,6 +272,9 @@ + + QAbstractItemView::NoEditTriggers + true @@ -582,6 +585,9 @@ + + QAbstractItemView::NoEditTriggers + true @@ -729,6 +735,9 @@ + + QAbstractItemView::NoEditTriggers + 设备名称 @@ -808,7 +817,7 @@ - + 12 @@ -832,7 +841,7 @@ - + 12 @@ -856,7 +865,7 @@ - + 12 @@ -911,7 +920,7 @@ - + 12 @@ -947,7 +956,7 @@ - + 12 @@ -981,7 +990,7 @@ - + 12 @@ -1013,7 +1022,7 @@ - + 12 @@ -1025,7 +1034,7 @@ - + 12 @@ -1059,9 +1068,10 @@ 0 - + + 12 75 true @@ -1083,9 +1093,10 @@ - + + 12 75 true @@ -1107,9 +1118,10 @@ - + + 12 75 true @@ -1131,9 +1143,10 @@ - + + 12 75 true @@ -1155,9 +1168,10 @@ - + + 12 75 true @@ -1193,6 +1207,13 @@ + + + 12 + 75 + true + + 环境温度: @@ -1200,6 +1221,13 @@ + + + 12 + 75 + true + + 20℃ @@ -1207,6 +1235,13 @@ + + + 12 + 75 + true + + 环境湿度: @@ -1214,6 +1249,13 @@ + + + 12 + 75 + true + + 50%RH @@ -1227,6 +1269,13 @@ + + + 12 + 75 + true + + 状态面板 @@ -1234,6 +1283,13 @@ + + + 12 + 75 + true + + 标准设备面板 @@ -1242,17 +1298,304 @@ - - - -1 + + + + 0 + 0 + + + + 12 + + + + + 2 + + + + + + + + + + 12 + 75 + true + + + + 设备名称: + + + + + + + + 12 + 75 + true + + + + 型号规格: + + + + + + + + 12 + 75 + true + + + + 出厂编号: + + + + + + + + 12 + 75 + true + + + + 生产厂家: + + + + + + + + + background-color: rgb(55, 83, 123); + + + + + + + 0 + 0 + + + + + 24 + 24 + + + + image: url(:/image/Index/u642.svg); + + + + + + + + + + + 12 + 75 + true + + + + color: rgb(255, 255, 255); + + + 外观及功能性检查 + + + + + + + + + + + + + + 12 + + + + + + 12 + + + + + + + 合格 + + + + + + + + 12 + + + + + + + 外观完好,工作正常 + + + + + + + + + + background-color: rgb(55, 83, 123); + + + + + + + 0 + 0 + + + + + 24 + 24 + + + + image: url(:/image/Index/u642.svg); + + + + + + + + + + + 12 + 75 + true + + + + color: rgb(255, 255, 255); + + + 检定数据 + + + + + + + + + + + + + 12 + 75 + true + + 检定设置面板 + + + + + + 选择 + + + + 12 + 75 + true + + + + + + 检定点 + + + + 12 + 75 + true + + + + + + 循环次数 + + + + 12 + 75 + true + + + + + + + + + + 12 + 75 + true + + + + color: rgb(255, 255, 255); +background-color: rgb(55, 83, 123); +padding:10px; + + + 运行提示 + + + + + + + @@ -1298,7 +1641,7 @@ - pushButton_8 + pushButton_close clicked() CheckWindow showMethodWidget() @@ -1314,7 +1657,7 @@ - pushButton_7 + pushButton_save clicked() CheckWindow showResult() diff --git a/softwareDirectory/AutoVerScheme/res/image/Index/u642.svg b/softwareDirectory/AutoVerScheme/res/image/Index/u642.svg new file mode 100644 index 0000000..33c9e0a --- /dev/null +++ b/softwareDirectory/AutoVerScheme/res/image/Index/u642.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user index 73103be..162961a 100644 --- a/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user +++ b/softwareDirectory/AutoVerScheme/AutoVerScheme.pro.user @@ -1,6 +1,6 @@ - + EnvironmentId @@ -299,7 +299,7 @@ false true - D:/dev/software/softwareDirectory/build-AutoVerScheme-Desktop_Qt_5_14_2_MinGW_64_bit-Debug + 1 diff --git a/softwareDirectory/AutoVerScheme/checkwindow.cpp b/softwareDirectory/AutoVerScheme/checkwindow.cpp index 2f3e8c6..44aaa75 100644 --- a/softwareDirectory/AutoVerScheme/checkwindow.cpp +++ b/softwareDirectory/AutoVerScheme/checkwindow.cpp @@ -22,6 +22,11 @@ ui->tableWidget_3->verticalHeader()->setParent(nullptr); for(int i=0;i<2;i++) ui->tableWidget_3->horizontalHeader()->setSectionResizeMode(i,QHeaderView::Stretch); + ui->tableWidget_3->setSelectionBehavior(QAbstractItemView::SelectRows); + ui->tableWidget_Point->verticalHeader()->setParent(nullptr); + ui->tableWidget_Point->setColumnWidth(0, 60); + for(int i=1;i<3;i++) + ui->tableWidget_Point->horizontalHeader()->setSectionResizeMode(i,QHeaderView::Stretch); getCheckDevice(); //ui->stackedWidget_2->setCurrentIndex(1); //ui->tableWidgetDevice->verticalHeader()->sectionResizeMode(QHeaderView::Stretch); @@ -31,26 +36,30 @@ { myTaskList.clear(); programList.clear(); + connectList.clear(); + selectTaskList.clear(); delete ui; } void CheckWindow::showMethod() { + selectTaskList.clear(); QString ids; for(int i=0;itableWidgetDevice->rowCount();i++){ Qt::CheckState state = ui->tableWidgetDevice->item(i,0)->checkState(); if(state == Qt::Checked){ - if(ids=="") + selectTaskList.append(myTaskList[i]); + /*if(ids=="") ids = myTaskList[i].id; else - ids +=";"+ myTaskList[i].id; + ids +=";"+ myTaskList[i].id;*/ //break; } } - if(ids==""){ + if(selectTaskList.length()==0){ QMessageBox::warning(this, "提示", "请选择被检设备!"); }else{ - qDebug() << "select ids:" << ids; + //qDebug() << "select ids:" << ids; ui->stackedWidget->setCurrentIndex(1); getCheckMethod(); } @@ -86,20 +95,25 @@ QStringList idList; int rowCount=0; int row=0; + connectList.clear(); if(programInfo.tested_device_id!="") { idList = programInfo.tested_device_id.split(","); for(const QString& id : idList) { + ConnectInfo info; + info.state="未连接"; QList result = BaseCommonApi::getTestedCatDevice(id); if(result.length()>0){ - rowCount = ui->tableWidget_3->rowCount(); - - ui->tableWidget_3->insertRow(rowCount); - ui->tableWidget_3->setItem(row, 0, new QTableWidgetItem(result[0].equipment_name)); - ui->tableWidget_3->setItem(row, 1, new QTableWidgetItem("成功")); //设置数据 - row++; + info.deviceName = result[0].equipment_name; } + result.clear(); + QList addrList = BaseCommonApi::getVerificationProgramConfigInterface(id); + if(addrList.length()>0){ + info.programInterface = addrList[0]; + } + connectList.append(info); + addrList.clear(); } idList.clear(); } @@ -108,25 +122,133 @@ idList = programInfo.standard_device_id.split(","); for(const QString& id : idList) { + ConnectInfo info; + info.state="未连接"; QList result = BaseCommonApi::getCatDeviceInfor(id); if(result.length()>0){ - rowCount = ui->tableWidget_3->rowCount(); - - ui->tableWidget_3->insertRow(rowCount); - ui->tableWidget_3->setItem(row, 0, new QTableWidgetItem(result[0].equipment_name)); - ui->tableWidget_3->setItem(row, 1, new QTableWidgetItem("成功")); //设置数据 - row++; + info.deviceName = result[0].equipment_name; } + result.clear(); + QList addrList = BaseCommonApi::getVerificationProgramConfigInterface(id); + if(addrList.length()>0){ + info.programInterface = addrList[0]; + } + connectList.append(info); + addrList.clear(); } idList.clear(); } + for(const ConnectInfo& info : connectList){ + rowCount = ui->tableWidget_3->rowCount(); + ui->tableWidget_3->insertRow(rowCount); + ui->tableWidget_3->setItem(row, 0, new QTableWidgetItem(info.deviceName)); + ui->tableWidget_3->setItem(row, 1, new QTableWidgetItem(info.state)); //设置数据 + row++; + } + ui->tableWidget_3->selectRow(0); } void CheckWindow::showCheck() { + deleteItem(ui->horizontalLayout_14); + int idx=0; + for (const MyTask& task : selectTaskList) + { + QPushButton *btn_1 = new QPushButton(); + btn_1->setText(task.sample_name); + btn_1->setStyleSheet("QPushButton{" + "background-color:rgb(240,240,240);" + "color:rgb(51,51,51);" + "}"); + //btn_1->setSizePolicy(QSizePolicy::Preferred,QSizePolicy::Fixed); + QFont font; + font.setPointSize(12);//字体大小 + font.setBold(true); + btn_1->setFont(font); + btn_1->setCursor(Qt::PointingHandCursor); + connect(btn_1, &QPushButton::clicked, this, [this,task,idx]() { + on_deviceButton_clicked(task,idx); + }); + ui->horizontalLayout_14->addWidget(btn_1); + idx++; + } + on_deviceButton_clicked(selectTaskList[0],0); + ui->horizontalLayout_14->addStretch(); + + if(programInfo.tested_device_id!="") + { + QStringList idList=programInfo.tested_device_id.split(","); + QStringList headlist; + + QList Data=BaseCommonApi::Search_CalibrationTable(idList[0],&headlist); + + //tableWidgetItem + ui->tableWidget_Point->clearContents(); + ui->tableWidget_Point->setRowCount(0); + //循环数据 + int rowCount=0; + int row=0; + for (const QStringList& item : Data) + { + //获取行号 并进行添加行 + rowCount = ui->tableWidget_Point->rowCount(); + ui->tableWidget_Point->insertRow(rowCount); + QTableWidgetItem* p_check = new QTableWidgetItem(); + p_check->setCheckState(Qt::Unchecked); //设置首列为 CheckBox 控件 + ui->tableWidget_Point->setItem(row,0,p_check); + ui->tableWidget_Point->setItem(row, 1, new QTableWidgetItem(item[8])); + ui->tableWidget_Point->setItem(row, 2, new QTableWidgetItem("1")); + row++; + } + } + ui->stackedWidget_2->setCurrentIndex(1); } +void CheckWindow::on_deviceButton_clicked(MyTask task,int idx) +{ + for(int i=0;ihorizontalLayout_14->itemAt(i); + QPushButton *btn_1 = qobject_cast(child->widget()); + if(i==idx){ + btn_1->setStyleSheet("QPushButton{" + "background-color:rgb(55,83,123);" + "color:rgb(255,255,255);" + "}"); + }else{ + btn_1->setStyleSheet("QPushButton{" + "background-color:rgb(240,240,240);" + "color:rgb(51,51,51);" + "}"); + } + } + ui->label_21->setText(QString("设备名称: %1").arg(task.sample_name)); + ui->label_22->setText(QString("型号规格: %1").arg(task.sample_model)); + ui->label_23->setText(QString("出厂编号: %1").arg(task.manufacture_no)); + ui->label_24->setText(QString("生产厂家: %1").arg(task.manufacture_no)); +} + +void CheckWindow::deleteItem(QLayout *layout) +{ + QLayoutItem *child; + while ((child = layout->takeAt(0)) != nullptr) + { + //setParent为NULL,防止删除之后界面不消失 + if(child->widget()) + { + child->widget()->setParent(nullptr); + delete child->widget(); + } + else if (child->layout()) + { + deleteItem(child->layout()); + child->layout()->deleteLater(); + } + delete child; + } +} + + void CheckWindow::showMethodWidget() { ui->stackedWidget_2->setCurrentIndex(0); @@ -243,3 +365,26 @@ { showDevice(); } + +void CheckWindow::on_tableWidget_3_currentCellChanged(int currentRow, int currentColumn, int previousRow, int previousColumn) +{ + if(currentRow>=0&¤tRowradioButton_serial->setChecked(true); + else + ui->radioButton_visa->setChecked(true); + ui->comboBox_visa->setCurrentText(addr.visa); + if(addr.serial_port!=""){ + QStringList sList = addr.serial_port.split(";"); + if(sList.length()==5){ + ui->comboBox_port->setCurrentText(sList[0]); + ui->comboBox_baurt->setCurrentText(sList[1]); + ui->comboBox_check->setCurrentText(sList[2]); + ui->comboBox_data->setCurrentText(sList[3]); + ui->comboBox_stop->setCurrentText(sList[4]); + } + } + } +} diff --git a/softwareDirectory/AutoVerScheme/checkwindow.h b/softwareDirectory/AutoVerScheme/checkwindow.h index d3fa0c3..8cfaaf3 100644 --- a/softwareDirectory/AutoVerScheme/checkwindow.h +++ b/softwareDirectory/AutoVerScheme/checkwindow.h @@ -8,6 +8,13 @@ class CheckWindow; } +class ConnectInfo { +public: + QString deviceName; + QString state; + VerificationProgramConfigInterface programInterface; +}; + class CheckWindow : public QWidget { Q_OBJECT @@ -28,15 +35,20 @@ void on_pushButton_9_clicked(); + void on_tableWidget_3_currentCellChanged(int currentRow, int currentColumn, int previousRow, int previousColumn); + void on_deviceButton_clicked(MyTask task,int idx); private: void getCheckDevice(); void getCheckMethod(); void initDeviceInfo(); + void deleteItem(QLayout *layout); private: Ui::CheckWindow *ui; QList programList; QList myTaskList; + QList selectTaskList; VerificationProgramInfo programInfo; + QList connectList; }; #endif // CHECKWINDOW_H diff --git a/softwareDirectory/AutoVerScheme/checkwindow.ui b/softwareDirectory/AutoVerScheme/checkwindow.ui index c486dcf..d8d6a52 100644 --- a/softwareDirectory/AutoVerScheme/checkwindow.ui +++ b/softwareDirectory/AutoVerScheme/checkwindow.ui @@ -272,6 +272,9 @@ + + QAbstractItemView::NoEditTriggers + true @@ -582,6 +585,9 @@ + + QAbstractItemView::NoEditTriggers + true @@ -729,6 +735,9 @@ + + QAbstractItemView::NoEditTriggers + 设备名称 @@ -808,7 +817,7 @@ - + 12 @@ -832,7 +841,7 @@ - + 12 @@ -856,7 +865,7 @@ - + 12 @@ -911,7 +920,7 @@ - + 12 @@ -947,7 +956,7 @@ - + 12 @@ -981,7 +990,7 @@ - + 12 @@ -1013,7 +1022,7 @@ - + 12 @@ -1025,7 +1034,7 @@ - + 12 @@ -1059,9 +1068,10 @@ 0 - + + 12 75 true @@ -1083,9 +1093,10 @@ - + + 12 75 true @@ -1107,9 +1118,10 @@ - + + 12 75 true @@ -1131,9 +1143,10 @@ - + + 12 75 true @@ -1155,9 +1168,10 @@ - + + 12 75 true @@ -1193,6 +1207,13 @@ + + + 12 + 75 + true + + 环境温度: @@ -1200,6 +1221,13 @@ + + + 12 + 75 + true + + 20℃ @@ -1207,6 +1235,13 @@ + + + 12 + 75 + true + + 环境湿度: @@ -1214,6 +1249,13 @@ + + + 12 + 75 + true + + 50%RH @@ -1227,6 +1269,13 @@ + + + 12 + 75 + true + + 状态面板 @@ -1234,6 +1283,13 @@ + + + 12 + 75 + true + + 标准设备面板 @@ -1242,17 +1298,304 @@ - - - -1 + + + + 0 + 0 + + + + 12 + + + + + 2 + + + + + + + + + + 12 + 75 + true + + + + 设备名称: + + + + + + + + 12 + 75 + true + + + + 型号规格: + + + + + + + + 12 + 75 + true + + + + 出厂编号: + + + + + + + + 12 + 75 + true + + + + 生产厂家: + + + + + + + + + background-color: rgb(55, 83, 123); + + + + + + + 0 + 0 + + + + + 24 + 24 + + + + image: url(:/image/Index/u642.svg); + + + + + + + + + + + 12 + 75 + true + + + + color: rgb(255, 255, 255); + + + 外观及功能性检查 + + + + + + + + + + + + + + 12 + + + + + + 12 + + + + + + + 合格 + + + + + + + + 12 + + + + + + + 外观完好,工作正常 + + + + + + + + + + background-color: rgb(55, 83, 123); + + + + + + + 0 + 0 + + + + + 24 + 24 + + + + image: url(:/image/Index/u642.svg); + + + + + + + + + + + 12 + 75 + true + + + + color: rgb(255, 255, 255); + + + 检定数据 + + + + + + + + + + + + + 12 + 75 + true + + 检定设置面板 + + + + + + 选择 + + + + 12 + 75 + true + + + + + + 检定点 + + + + 12 + 75 + true + + + + + + 循环次数 + + + + 12 + 75 + true + + + + + + + + + + 12 + 75 + true + + + + color: rgb(255, 255, 255); +background-color: rgb(55, 83, 123); +padding:10px; + + + 运行提示 + + + + + + + @@ -1298,7 +1641,7 @@ - pushButton_8 + pushButton_close clicked() CheckWindow showMethodWidget() @@ -1314,7 +1657,7 @@ - pushButton_7 + pushButton_save clicked() CheckWindow showResult() diff --git a/softwareDirectory/AutoVerScheme/res/image/Index/u642.svg b/softwareDirectory/AutoVerScheme/res/image/Index/u642.svg new file mode 100644 index 0000000..33c9e0a --- /dev/null +++ b/softwareDirectory/AutoVerScheme/res/image/Index/u642.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/softwareDirectory/AutoVerScheme/res/res.qrc b/softwareDirectory/AutoVerScheme/res/res.qrc index 6738816..6a63995 100644 --- a/softwareDirectory/AutoVerScheme/res/res.qrc +++ b/softwareDirectory/AutoVerScheme/res/res.qrc @@ -54,5 +54,6 @@ image/Index/u7313.svg image/Index/u2188.svg image/Index/u2189.svg + image/Index/u642.svg