diff --git a/experiment_data/sample_data/.xlsx b/experiment_data/sample_data/.xlsx new file mode 100644 index 0000000..75807d9 Binary files /dev/null and b/experiment_data/sample_data/.xlsx differ diff --git a/experiment_data/sample_data/_2025_06_20_14_58_16.xlsx b/experiment_data/sample_data/_2025_06_20_14_58_16.xlsx new file mode 100644 index 0000000..d26d656 Binary files /dev/null and b/experiment_data/sample_data/_2025_06_20_14_58_16.xlsx differ diff --git a/experiment_data/sample_data/_2025_06_20_14_58_17.xlsx b/experiment_data/sample_data/_2025_06_20_14_58_17.xlsx new file mode 100644 index 0000000..bb31c72 Binary files /dev/null and b/experiment_data/sample_data/_2025_06_20_14_58_17.xlsx differ diff --git a/experiment_data/sample_data/_2025_06_20_15_03_20.xlsx b/experiment_data/sample_data/_2025_06_20_15_03_20.xlsx new file mode 100644 index 0000000..0bce293 Binary files /dev/null and b/experiment_data/sample_data/_2025_06_20_15_03_20.xlsx differ diff --git a/experiment_data/sample_data/autotest.xlsx b/experiment_data/sample_data/autotest.xlsx new file mode 100644 index 0000000..daa8454 Binary files /dev/null and b/experiment_data/sample_data/autotest.xlsx differ diff --git a/experiment_data/sample_data/autotest_2025_06_20_14_39_55.xlsx b/experiment_data/sample_data/autotest_2025_06_20_14_39_55.xlsx new file mode 100644 index 0000000..7a22c80 Binary files /dev/null and b/experiment_data/sample_data/autotest_2025_06_20_14_39_55.xlsx differ diff --git a/experiment_data/sample_data/new.xlsx b/experiment_data/sample_data/new.xlsx index a5469fd..807cc85 100644 Binary files a/experiment_data/sample_data/new.xlsx and b/experiment_data/sample_data/new.xlsx differ diff --git a/experiment_data/sample_data/new_2025_06_20_15_10_22.xlsx b/experiment_data/sample_data/new_2025_06_20_15_10_22.xlsx new file mode 100644 index 0000000..ad0d4d7 Binary files /dev/null and b/experiment_data/sample_data/new_2025_06_20_15_10_22.xlsx differ diff --git a/experiment_data/sample_data/new_2025_06_20_15_21_12.xlsx b/experiment_data/sample_data/new_2025_06_20_15_21_12.xlsx new file mode 100644 index 0000000..9d32cc8 Binary files /dev/null and b/experiment_data/sample_data/new_2025_06_20_15_21_12.xlsx differ diff --git a/experiment_data/sample_data/new_2025_06_20_15_28_31.xlsx b/experiment_data/sample_data/new_2025_06_20_15_28_31.xlsx new file mode 100644 index 0000000..1371e0b Binary files /dev/null and b/experiment_data/sample_data/new_2025_06_20_15_28_31.xlsx differ diff --git a/experiment_data/sample_data/new_2025_06_20_15_33_27.xlsx b/experiment_data/sample_data/new_2025_06_20_15_33_27.xlsx new file mode 100644 index 0000000..8ff0be9 Binary files /dev/null and b/experiment_data/sample_data/new_2025_06_20_15_33_27.xlsx differ diff --git a/experiment_data/sample_data/new_2025_06_20_15_57_21.xlsx b/experiment_data/sample_data/new_2025_06_20_15_57_21.xlsx new file mode 100644 index 0000000..37fa230 Binary files /dev/null and b/experiment_data/sample_data/new_2025_06_20_15_57_21.xlsx differ diff --git a/experiment_data/sample_data/new_2025_06_20_15_57_22.xlsx b/experiment_data/sample_data/new_2025_06_20_15_57_22.xlsx new file mode 100644 index 0000000..f2b3b19 Binary files /dev/null and b/experiment_data/sample_data/new_2025_06_20_15_57_22.xlsx differ diff --git a/experiment_data/sample_data/new_2025_06_20_16_42_40.xlsx b/experiment_data/sample_data/new_2025_06_20_16_42_40.xlsx new file mode 100644 index 0000000..bffebe7 Binary files /dev/null and b/experiment_data/sample_data/new_2025_06_20_16_42_40.xlsx differ diff --git a/experiment_data/sample_data/~$new_2025_06_20_16_42_40.xlsx b/experiment_data/sample_data/~$new_2025_06_20_16_42_40.xlsx new file mode 100644 index 0000000..d4a5841 Binary files /dev/null and b/experiment_data/sample_data/~$new_2025_06_20_16_42_40.xlsx differ diff --git a/experiment_data/sample_data/氧化诱导期0620-auto.xlsx b/experiment_data/sample_data/氧化诱导期0620-auto.xlsx new file mode 100644 index 0000000..0f3b05b Binary files /dev/null and b/experiment_data/sample_data/氧化诱导期0620-auto.xlsx differ diff --git a/experiment_data/sample_data/氧化诱导期0620.xlsx b/experiment_data/sample_data/氧化诱导期0620.xlsx new file mode 100644 index 0000000..440cdbc Binary files /dev/null and b/experiment_data/sample_data/氧化诱导期0620.xlsx differ diff --git a/experiment_data/sample_data/氧化诱导期7.73.xlsx b/experiment_data/sample_data/氧化诱导期7.73.xlsx new file mode 100644 index 0000000..d23d1fd Binary files /dev/null and b/experiment_data/sample_data/氧化诱导期7.73.xlsx differ diff --git a/experiment_data/sample_data/氧化诱导期auto-test.xlsx b/experiment_data/sample_data/氧化诱导期auto-test.xlsx new file mode 100644 index 0000000..9ac280f Binary files /dev/null and b/experiment_data/sample_data/氧化诱导期auto-test.xlsx differ diff --git a/src/DSCAnalysisTool.pro b/src/DSCAnalysisTool.pro index b2e2b18..0b4ef05 100644 --- a/src/DSCAnalysisTool.pro +++ b/src/DSCAnalysisTool.pro @@ -30,6 +30,7 @@ SOURCES += \ data/confighandler.cpp \ data/filemanager.cpp \ data/lowesssmoother.cpp \ + data/oitautoanalysis.cpp \ data/pointcalculate.cpp \ data/txthandler.cpp \ global.cpp \ @@ -66,6 +67,7 @@ SOURCES += \ HEADERS += \ data/confighandler.h \ data/lowesssmoother.h \ + data/oitautoanalysis.h \ data/txthandler.h \ global.h \ data/filemanager.h \ diff --git a/src/data/oitautoanalysis.cpp b/src/data/oitautoanalysis.cpp new file mode 100644 index 0000000..130208f --- /dev/null +++ b/src/data/oitautoanalysis.cpp @@ -0,0 +1,70 @@ +#include "oitautoanalysis.h" +#include "global.h" +#include "logger.h" + +OITAutoAnalysis::OITAutoAnalysis(QObject *parent) : QObject(parent) +{ + +} + +void OITAutoAnalysis::analysis() +{ + if(!Global::_OITAutoAnalysisModeFlag){ + return; + } + + // + if(!Global::_currentCurveExperimentDataPtr){ + return; + } + + if(Global::_currentCurveExperimentDataPtr->phaseIndex != 2){ + return; + } + +#if 0 + static Global::ExperimentData reachCoefficientData; + static bool runTimeReachTheCoefficientFirstFlag = false; + if(!runTimeReachTheCoefficientFirstFlag && + (Global::_currentCurveExperimentDataPtr->dataVtr.last().runTime + > Global::_OITAutoAnalysisCoefficient)){ + runTimeReachTheCoefficientFirstFlag = true; + reachCoefficientData = Global::_currentCurveExperimentDataPtr->dataVtr.last(); + } + + if(runTimeReachTheCoefficientFirstFlag){ + logde<<"phase index 1:"<phaseIndex; + logde<<"phase index:"<dataVtr.last().phaseIndex; + + if(Global::_currentCurveExperimentDataPtr->dataVtr.last().dsc + - reachCoefficientData.dsc > Global::_OITAutoAnalysisThreshold){ + double x1 = reachCoefficientData.runTime; + double x2 = Global::_currentCurveExperimentDataPtr->dataVtr.last().runTime; + emit sigExperimentStop(x1,x2); + } + } +#endif + + if(Global::_mode != Global::Mode::Experiment){ + return; + } + + static Global::ExperimentData phase2FirstData; + static bool phase2FirstDataRecordFlag = false; + if(!phase2FirstDataRecordFlag){ + phase2FirstDataRecordFlag = true; + phase2FirstData = Global::_currentCurveExperimentDataPtr->dataVtr.last(); + }else{ + Global::ExperimentData& ed = Global::_currentCurveExperimentDataPtr->dataVtr.last(); + + if((ed.runTime > Global::_OITAutoAnalysisCoefficient) + && (ed.dsc - phase2FirstData.dsc > Global::_OITAutoAnalysisThreshold)){ + // + double x1 = phase2FirstData.runTime; + double x2 = ed.runTime; + emit sigExperimentStop(x1,x2); + + phase2FirstDataRecordFlag = false; + } + } +} diff --git a/src/data/oitautoanalysis.h b/src/data/oitautoanalysis.h new file mode 100644 index 0000000..8d611ce --- /dev/null +++ b/src/data/oitautoanalysis.h @@ -0,0 +1,23 @@ +#ifndef OITAUTOANALYSIS_H +#define OITAUTOANALYSIS_H + +#include + +class OITAutoAnalysis : public QObject +{ + Q_OBJECT +public: + explicit OITAutoAnalysis(QObject *parent = nullptr); + + static OITAutoAnalysis* getInstance() + { + static OITAutoAnalysis instance; + return &instance; + } + + void analysis(); +signals: + void sigExperimentStop(const double x1,const double x2); +}; + +#endif // OITAUTOANALYSIS_H diff --git a/src/global.cpp b/src/global.cpp index bb7b2d5..73ef5d3 100644 --- a/src/global.cpp +++ b/src/global.cpp @@ -28,6 +28,11 @@ LanguageType _languageType = LanguageType::Chinese; bool _experimentOITFlag = false; +// OIT auto mode. +bool _OITAutoAnalysisModeFlag = false; +double _OITAutoAnalysisCoefficient = OITAutoAnalysisDefaultCoefficient; +double _OITAutoAnalysisThreshold = OITAutoAnalysisDefaultThreshold; + QString converDoubleToStr(const double num) { return QString::number(num,'f',3); diff --git a/src/global.h b/src/global.h index dd3a5b3..74e9147 100644 --- a/src/global.h +++ b/src/global.h @@ -98,6 +98,13 @@ struct ExperimentInfo{ int phaseSize; QVector phaseVtr; + + ExperimentInfo() + :sampleName("new") + ,sampleWeight("0") + ,date("20250101") + ,experimentor("experimentor") + {} }; struct PhaseTotalInfo{ @@ -160,6 +167,14 @@ extern AxisMode _axisMode; extern bool _experimentOITFlag; +// OIT auto mode. +const double OITAutoAnalysisDefaultCoefficient = 10.0; +const double OITAutoAnalysisDefaultThreshold = 2.0; + +extern bool _OITAutoAnalysisModeFlag; +extern double _OITAutoAnalysisCoefficient; +extern double _OITAutoAnalysisThreshold; + // common func QString converDoubleToStr(const double); void quadraticLeastSquaresFit(double x[], double y[], int n, double coeff[]); diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 28b41b3..12ecefe 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -33,6 +33,7 @@ MainWindow::MainWindow(QWidget *parent) ,_manuallyStopTheExperimentFlag(false) { ui->setupUi(this); + ui->actionOITAutoAnalysisMode->setVisible(false); this->setToolTip("....."); ui->actionSaveas->setVisible(false); @@ -93,6 +94,13 @@ void MainWindow::slotUpdateStatusbarMsg(const QString msg) ui->statusbar->showMessage(msg); } +void MainWindow::slotOITAutoAnalysis(const double x1,const double x2) +{ + on_actionStop_triggered(); + _centralWidget->setAnalysisMode(CentralWidget::AnalysisMode::OIT); + _centralWidget->setVerticalLineRange(x1,x2); +} + void MainWindow::closeEvent(QCloseEvent *event) { // 弹出确认对话框 @@ -174,6 +182,9 @@ void MainWindow::connections() _axisSettingForm,&AxisSettingForm::slotGetAxisInfoWithData); connect(_axisSettingForm,&AxisSettingForm::sigSetAxisSettings, _centralWidget,&CentralWidget::slotSetAxisSettings); + // OIT + connect(OITAutoAnalysis::getInstance(),&OITAutoAnalysis::sigExperimentStop, + this,&MainWindow::slotOITAutoAnalysis); } void MainWindow::setActionEnable(const bool flag) @@ -244,7 +255,8 @@ bool MainWindow::saveAnalysisFile(const QString fileName) } #endif -bool MainWindow::saveFile(const QString fileName,const Global::Mode mode) +bool MainWindow::saveFile(const QString fileName,const Global::Mode mode, + QString& finalFileName,const bool autoSaveFlag) { QString localFileName = fileName; if(fileName.isEmpty()){ @@ -260,9 +272,18 @@ bool MainWindow::saveFile(const QString fileName,const Global::Mode mode) folder = Global::SampleDataFloder; } - QString xlsxfilePath = folder + "/" + localFileName + ".xlsx"; - QString filePath = QFileDialog::getSaveFileName(nullptr, "Save experiment file", - xlsxfilePath, "Excel Files (*.xlsx)"); + QString filePath; + if(autoSaveFlag){ + localFileName = _leftWidget->filePathCheck(fileName,folder); + filePath = folder + "/" + localFileName + ".xlsx"; + }else{ + QString xlsxfilePath = folder + "/" + localFileName + ".xlsx"; + filePath = QFileDialog::getSaveFileName(nullptr, "Save experiment file", + xlsxfilePath, "Excel Files (*.xlsx)"); + } + // + finalFileName = localFileName + ".xlsx"; + logde<<"filePath:"<reloadFileName(); // } - if(saveFile(Global::_experimentInfo.sampleName,Global::Mode::Experiment)){ + QString finalFileName; + if(saveFile(Global::_experimentInfo.sampleName,Global::Mode::Experiment,finalFileName,true)){ _leftWidget->reloadFileName(); + + QString str = QString("%1 文件保存成功。").arg(finalFileName); + QMessageBox::information(this, "文件保存", str,QMessageBox::Yes ); } #endif @@ -500,20 +525,26 @@ void MainWindow::slotSaveExperimentalDataMsgBox() return; } + // auto save file. + QString finalFileName; + if(saveFile(Global::_experimentInfo.sampleName,Global::Mode::Experiment,finalFileName,true)){ + _leftWidget->reloadFileName(); + + QString str = QString("%1 文件保存成功。").arg(finalFileName); + QMessageBox::information(this, "文件保存", str,QMessageBox::Yes ); + } + +#if 0 QMessageBox::StandardButton reply; reply = QMessageBox::question(this, "数据保存提示", "是否保存实验数据?", QMessageBox::Yes | QMessageBox::No); if (reply == QMessageBox::Yes) { - saveFile(Global::_experimentInfo.sampleName,Global::Mode::Experiment); + QString finaleFileName; + saveFile(Global::_experimentInfo.sampleName,Global::Mode::Experiment,finaleFileName); _leftWidget->reloadFileName(); } else { on_actionClearAllData_triggered(); } - -#if 0 - // Clear data. - logde<<"save mesg box.clearExperimentData..."; - Global::clearExperimentData(); #endif } @@ -614,7 +645,7 @@ void MainWindow::on_actionOITAutoAnalysisParam_triggered() void MainWindow::on_actionOITAutoAnalysisMode_triggered() { - // + } void MainWindow::on_actionTimeAxisAnalysisPCTMode_triggered() @@ -675,13 +706,15 @@ void MainWindow::on_actionAxisSetting_triggered() void MainWindow::on_actionSaveData_triggered() { - saveFile(Global::_experimentInfo.sampleName,Global::_mode); + QString finaleFileName; + saveFile(Global::_experimentInfo.sampleName,Global::_mode,finaleFileName); _leftWidget->reloadFileName(); } void MainWindow::on_actionSaveas_triggered() { - saveFile(Global::_experimentInfo.sampleName,Global::Mode::None); + QString finaleFileName; + saveFile(Global::_experimentInfo.sampleName,Global::Mode::None,finaleFileName); _leftWidget->reloadFileName(); } diff --git a/src/mainwindow.h b/src/mainwindow.h index 0afbe1b..24e2693 100644 --- a/src/mainwindow.h +++ b/src/mainwindow.h @@ -5,6 +5,7 @@ #include #include +#include "oitautoanalysis.h" #include "axissettingform.h" #include "printpreviewform.h" #include "centralwidget.h" @@ -38,6 +39,9 @@ public: public slots: void slotContextMenuShow(const QPoint); void slotUpdateStatusbarMsg(const QString); + + void slotOITAutoAnalysis(const double,const double); + protected: void closeEvent(QCloseEvent *event) override; private slots: @@ -117,7 +121,8 @@ private: void setActionEnable(const bool); void setSubWidgetAttribute(QWidget *); - bool saveFile(const QString fileName,const Global::Mode); + bool saveFile(const QString fileName,const Global::Mode, + QString& finalFileName,const bool autoSaveFlag = false); void smoothness(const int level); QVector smoothnessDetail(const int level,const QVector&); diff --git a/src/mainwindow.ui b/src/mainwindow.ui index 530868b..35a3a0f 100644 --- a/src/mainwindow.ui +++ b/src/mainwindow.ui @@ -62,10 +62,11 @@ - - + + + @@ -288,10 +289,13 @@ - OIT自动分析参数 + OIT自动分析设置 + + true + OIT自动分析模式 diff --git a/src/serialport/serialport.cpp b/src/serialport/serialport.cpp index a7e7dc3..faee0ff 100644 --- a/src/serialport/serialport.cpp +++ b/src/serialport/serialport.cpp @@ -220,7 +220,7 @@ void SerialPort::updateStatus(const CommonData &cd) preMode = Global::_mode; } - if(sendSignalFlag){ + if(sendSignalFlag && !Global::_OITAutoAnalysisModeFlag){ emit sigSaveExperimentalDataMsgBox(); } } diff --git a/src/ui/centralwidget.cpp b/src/ui/centralwidget.cpp index da1f025..ab63cc2 100644 --- a/src/ui/centralwidget.cpp +++ b/src/ui/centralwidget.cpp @@ -5,6 +5,7 @@ #include #include +#include "oitautoanalysis.h" #include "analysisoperationrecorder.h" #include "centralwidget.h" #include "filemanager.h" @@ -215,6 +216,17 @@ void CentralWidget::startExperiment() _customPlot->replot(); } +void CentralWidget::setVerticalLineRange(const double x1, const double x2) +{ + _line1->point1->setCoords(x1,_line1->point1->coords().y()); + _line1->point2->setCoords(x1,_line1->point2->coords().y()); + + _line2->point1->setCoords(x2,_line2->point1->coords().y()); + _line2->point2->setCoords(x2,_line2->point2->coords().y()); + + slotAnalysisSettingConfirm(); +} + void CentralWidget::setAnalysisMode(const AnalysisMode mode) { _analysisMode = mode; @@ -290,12 +302,15 @@ void CentralWidget::slotRecvCommonData(const CommonData &cd) ed.constantTempTime = cd.add_constan_temp_time; if(Global::_currentCurveExperimentDataPtr->dataVtr.empty()){ - ed.phaseIndex = Global::_currentCurveExperimentDataPtr->phaseIndex; logde<<"change phase, index:"<phaseIndex; _currentCurve = nullptr; } + ed.phaseIndex = Global::_currentCurveExperimentDataPtr->phaseIndex; + Global::_currentCurveExperimentDataPtr->dataVtr.push_back(ed); + + OITAutoAnalysis::getInstance()->analysis(); } // Update ui. @@ -331,7 +346,7 @@ void CentralWidget::slotRecvCommonData(const CommonData &cd) _currentCurve->addData(index++,cd.add_run_time, cd.dsc); } - // _customPlot->rescaleAxes(); + // _customPlot->replot(); } @@ -1542,6 +1557,8 @@ void CentralWidget::calculateAnalysisResult( endData.runTime = startEndPointPair.second.x(); endData.dsc = startEndPointPair.second.y(); + logde<<"start runtime:"<setupUi(this); + + ui->sampleNameLineEdit->setText("new"); + ui->sampleWeightLineEdit->setText("0"); + ui->userLineEdit->setText("user"); + uiReset(); ui->checkBox_phase_1->setTristate(false); diff --git a/src/ui/leftwidget.cpp b/src/ui/leftwidget.cpp index 3d9ce56..4f84f52 100644 --- a/src/ui/leftwidget.cpp +++ b/src/ui/leftwidget.cpp @@ -53,6 +53,26 @@ void LeftWidget::reloadFileName() initFileName(_analysisStateItem,Global::AnalysisStateFolder); } +QString LeftWidget::filePathCheck(const QString fileName,const QString folderPath) +{ + QString resultFileName = fileName; + + QDir dir(folderPath); + QStringList files = dir.entryList(QDir::Files); + for(const QString &existedFileName:files){ + QFileInfo fileInfo(existedFileName); + if(fileName == fileInfo.baseName()){ + QDateTime currentDateTime = QDateTime::currentDateTime(); + QString formattedTime = currentDateTime.toString("yyyy_MM_dd_HH_mm_ss"); + + resultFileName = fileName + QString("_") + formattedTime; + break; + } + } + + return resultFileName; +} + void LeftWidget::initData() { // const QString folderPath = QDir::currentPath()+"/../experiment_data"; diff --git a/src/ui/leftwidget.h b/src/ui/leftwidget.h index cee0537..99f6abb 100644 --- a/src/ui/leftwidget.h +++ b/src/ui/leftwidget.h @@ -6,6 +6,8 @@ #include #include +#include "global.h" + class LeftWidget:public QDockWidget { Q_OBJECT @@ -13,6 +15,8 @@ public: LeftWidget(QWidget *parent = nullptr); void reloadFileName(); + + QString filePathCheck(const QString fileName,const QString folderPath); signals: void sigSendAnalysisFileName(const QString&); private: diff --git a/src/ui/oitautoanalysisparamform.cpp b/src/ui/oitautoanalysisparamform.cpp index a48ff0f..40180c8 100644 --- a/src/ui/oitautoanalysisparamform.cpp +++ b/src/ui/oitautoanalysisparamform.cpp @@ -1,11 +1,22 @@ #include "oitautoanalysisparamform.h" #include "ui_oitautoanalysisparamform.h" +#include "global.h" +#include "logger.h" + OITAutoAnalysisParamForm::OITAutoAnalysisParamForm(QWidget *parent) : QWidget(parent), ui(new Ui::OITAutoAnalysisParamForm) { ui->setupUi(this); + + ui->LineEditCoefficient->setEnabled(false); + ui->LineEditThreshold->setEnabled(false); + + ui->LineEditCoefficient->setText( + Global::converDoubleToStr(Global::_OITAutoAnalysisCoefficient)); + ui->LineEditThreshold->setText( + Global::converDoubleToStr(Global::_OITAutoAnalysisThreshold)); } OITAutoAnalysisParamForm::~OITAutoAnalysisParamForm() @@ -16,4 +27,30 @@ OITAutoAnalysisParamForm::~OITAutoAnalysisParamForm() void OITAutoAnalysisParamForm::on_pushButtonOk_clicked() { hide(); + + if(ui->checkBoxAutoAnalysisEnable->checkState() == Qt::Checked){ + Global::_OITAutoAnalysisModeFlag = true; + }else if(ui->checkBoxAutoAnalysisEnable->checkState() == Qt::Unchecked){ + Global::_OITAutoAnalysisModeFlag = false; + } + + Global::_OITAutoAnalysisCoefficient = + ui->LineEditCoefficient->text().toDouble(); + Global::_OITAutoAnalysisThreshold = + ui->LineEditThreshold->text().toDouble(); + + logde<<"flag:"<LineEditCoefficient->setEnabled(true); + ui->LineEditThreshold->setEnabled(true); + }else if(arg1 == Qt::Unchecked){ + ui->LineEditCoefficient->setEnabled(false); + ui->LineEditThreshold->setEnabled(false); + } } diff --git a/src/ui/oitautoanalysisparamform.h b/src/ui/oitautoanalysisparamform.h index 01a82f3..cf8187c 100644 --- a/src/ui/oitautoanalysisparamform.h +++ b/src/ui/oitautoanalysisparamform.h @@ -18,6 +18,8 @@ public: private slots: void on_pushButtonOk_clicked(); + void on_checkBoxAutoAnalysisEnable_stateChanged(int arg1); + private: Ui::OITAutoAnalysisParamForm *ui; }; diff --git a/src/ui/oitautoanalysisparamform.ui b/src/ui/oitautoanalysisparamform.ui index 30ea8c2..cb29b0e 100644 --- a/src/ui/oitautoanalysisparamform.ui +++ b/src/ui/oitautoanalysisparamform.ui @@ -6,8 +6,8 @@ 0 0 - 233 - 156 + 269 + 235 @@ -16,8 +16,8 @@ - 130 - 120 + 170 + 170 80 20 @@ -29,8 +29,8 @@ - 10 - 10 + 30 + 60 191 91 @@ -44,17 +44,10 @@ 10 20 171 - 61 + 70 - - - - 系数: - - - @@ -68,9 +61,29 @@ + + + + 系数: + + + + + + + 30 + 30 + 181 + 18 + + + + OIT自动分析模式 + +