From e895d7ffb34d24e52851f62ef758c61e1a0ea614 Mon Sep 17 00:00:00 2001 From: chenzenghui <3045316072@qq.com> Date: Thu, 8 May 2025 23:00:13 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E4=BA=86=E5=8F=82=E6=95=B0?= =?UTF-8?q?=E7=95=8C=E9=9D=A2=E6=8E=A7=E4=BB=B6=E7=9A=84=E4=BD=BF=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../GF3StripPatchProcess.vcxproj | 108 +++++ .../GF3StripPatchProcess.vcxproj.filters | 31 ++ GF3StripPatchProcess/main.cpp | 8 + LAMPDataProcess.sln | 14 + LAMPDataProcessEXE/LAMPMainWidget.sqlite | Bin 50290688 -> 50888704 bytes .../KJ135WBJYAlgInterfaceToolbox.vcxproj | 2 + ...135WBJYAlgInterfaceToolbox.vcxproj.filters | 12 +- .../KJ135WBJYAlgWidgetComponet.cpp | 427 +++++++++++++----- .../KJ135WBJYAlgWidgetComponet.h | 207 ++++++--- .../QWBFZAlgComponetXmlParamsDialog.cpp | 2 + .../QWBFZAlgComponetXmlParamsDialog.ui | 3 + .../WBFZAlgComponetXmlParaseOperator.cpp | 1 + .../WBFZAlgComponetXmlParaseOperator.h | 67 +++ 13 files changed, 698 insertions(+), 184 deletions(-) create mode 100644 GF3StripPatchProcess/GF3StripPatchProcess.vcxproj create mode 100644 GF3StripPatchProcess/GF3StripPatchProcess.vcxproj.filters create mode 100644 GF3StripPatchProcess/main.cpp create mode 100644 Toolbox/KJ135WBJYAlgInterfaceToolbox/WBFZAlgComponetXmlParaseOperator.cpp create mode 100644 Toolbox/KJ135WBJYAlgInterfaceToolbox/WBFZAlgComponetXmlParaseOperator.h diff --git a/GF3StripPatchProcess/GF3StripPatchProcess.vcxproj b/GF3StripPatchProcess/GF3StripPatchProcess.vcxproj new file mode 100644 index 0000000..48c17f9 --- /dev/null +++ b/GF3StripPatchProcess/GF3StripPatchProcess.vcxproj @@ -0,0 +1,108 @@ + + + + + Debug + x64 + + + Release + x64 + + + + {6386D3E3-B743-419F-8354-DA48D0B08728} + QtVS_v304 + 10.0 + 10.0 + $(MSBuildProjectDirectory)\QtMsBuild + + + + Application + v143 + true + Unicode + + + Application + v143 + false + true + Unicode + + + + + + + tools_qt5 + core + debug + + + tools_qt5 + core + release + + + + + + + + + + + + + + + + + + + + + + true + Level3 + true + true + + + Console + true + + + + + true + Level3 + true + true + true + true + + + Console + false + true + true + + + + + + + + + + + + + \ No newline at end of file diff --git a/GF3StripPatchProcess/GF3StripPatchProcess.vcxproj.filters b/GF3StripPatchProcess/GF3StripPatchProcess.vcxproj.filters new file mode 100644 index 0000000..db47d74 --- /dev/null +++ b/GF3StripPatchProcess/GF3StripPatchProcess.vcxproj.filters @@ -0,0 +1,31 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + qml;cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hh;hpp;hxx;hm;inl;inc;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + qrc;rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + {99349809-55BA-4b9d-BF79-8FDBB0286EB3} + ui + + + {639EADAA-A684-42e4-A9AD-28FC9BCB8F7C} + ts + + + + + Source Files + + + + diff --git a/GF3StripPatchProcess/main.cpp b/GF3StripPatchProcess/main.cpp new file mode 100644 index 0000000..03cd4d5 --- /dev/null +++ b/GF3StripPatchProcess/main.cpp @@ -0,0 +1,8 @@ +#include + +int main(int argc, char *argv[]) +{ + QCoreApplication a(argc, argv); + + return a.exec(); +} diff --git a/LAMPDataProcess.sln b/LAMPDataProcess.sln index d22ae33..5db6c11 100644 --- a/LAMPDataProcess.sln +++ b/LAMPDataProcess.sln @@ -44,6 +44,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SPG4Tool", "SPG4Tool\SPG4To EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "KJ135WBJYAlgInterfaceToolbox", "Toolbox\KJ135WBJYAlgInterfaceToolbox\KJ135WBJYAlgInterfaceToolbox.vcxproj", "{D3E9A2CA-7F05-425A-A4B6-416EC20972E8}" EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "GF3StripPatchProcess", "GF3StripPatchProcess\GF3StripPatchProcess.vcxproj", "{6386D3E3-B743-419F-8354-DA48D0B08728}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|ARM = Debug|ARM @@ -210,6 +212,18 @@ Global {D3E9A2CA-7F05-425A-A4B6-416EC20972E8}.Release|x64.Build.0 = Release|x64 {D3E9A2CA-7F05-425A-A4B6-416EC20972E8}.Release|x86.ActiveCfg = Release|x64 {D3E9A2CA-7F05-425A-A4B6-416EC20972E8}.Release|x86.Build.0 = Release|x64 + {6386D3E3-B743-419F-8354-DA48D0B08728}.Debug|ARM.ActiveCfg = Debug|x64 + {6386D3E3-B743-419F-8354-DA48D0B08728}.Debug|ARM.Build.0 = Debug|x64 + {6386D3E3-B743-419F-8354-DA48D0B08728}.Debug|x64.ActiveCfg = Debug|x64 + {6386D3E3-B743-419F-8354-DA48D0B08728}.Debug|x64.Build.0 = Debug|x64 + {6386D3E3-B743-419F-8354-DA48D0B08728}.Debug|x86.ActiveCfg = Debug|x64 + {6386D3E3-B743-419F-8354-DA48D0B08728}.Debug|x86.Build.0 = Debug|x64 + {6386D3E3-B743-419F-8354-DA48D0B08728}.Release|ARM.ActiveCfg = Release|x64 + {6386D3E3-B743-419F-8354-DA48D0B08728}.Release|ARM.Build.0 = Release|x64 + {6386D3E3-B743-419F-8354-DA48D0B08728}.Release|x64.ActiveCfg = Release|x64 + {6386D3E3-B743-419F-8354-DA48D0B08728}.Release|x64.Build.0 = Release|x64 + {6386D3E3-B743-419F-8354-DA48D0B08728}.Release|x86.ActiveCfg = Release|x64 + {6386D3E3-B743-419F-8354-DA48D0B08728}.Release|x86.Build.0 = Release|x64 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/LAMPDataProcessEXE/LAMPMainWidget.sqlite b/LAMPDataProcessEXE/LAMPMainWidget.sqlite index 340aaa146765553adadb2a4266b8820e1f820c35..d3659c68ad1db18e7bc396ed88e57fdbd1c25a6a 100644 GIT binary patch delta 97993 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�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�(WNlagoBZMHKIys^Qm`-X&0ch@+&6G=vg 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 delta 2909 zcmWmGRkW4`6h%?^K^o~+I;1y^BHay=l9xu1mR6cgcXxM#bX>X{BqXFk=>{cS-@{zb z`{j&r`t_TiwBPQJNya9Rl3+=M2sz)3OI;+CV9C0$**QZA77vgW(F$3StjN|ERun6$ z70rrn#js*pv8>qEmsT7rt`*OUZzZr2T8XU0RuU_zmCQu0N-)!yo0b+kHJovkj`FIHEp zo7LUwVfD0nS-q`at>3IZR$r^1)!!Om4YUSXgDqP_tfAI0Yq&MS8flHPMq6X7vDP?i zyfwj^Xic&vTT`s5)--FnHN%=|&9Y`&bF8`6JZrwSz*=Z6vKCuQtfkg6Yq_<;T4}Aa zR$FVVwbnXoy|uym-P&kvvNl^=tgY5IYrD0>+G*{w!mZub9&4|)&)RPtunt;>ti#q3 z>!@|iI&Ph?PFkm|)7Ba5taZ*hZ~b9iur6ActjpG)))nijb{enD4sLwEE*PxL}>{EFYu2Yt~G{V@OoF$jZU48c$g z!*GniNQ}a0jKNrp!+1=b93@Z^rBE7WP!{D-9u-g#l~5T~P!-is9Y3H3YN8fu zqYmogN7O@oG(bZ%LSuxX37VoAnxh3;q7_=>C$vFZ{ET*Jj}GXFPUws-_yt|j4c*ZL zJ<$uj@hg5qAM`~(^v3`U#2^fYF$6;~48t)3BQXl2F$QBX4&yNa6EO*sF$GgG4bw3L zGcgOZF$Z%o5A(4A3$X}`u>?!849l?sE3pczu?B0g4(qW2zhfgdVKcU1E4E=fc3>xV zAsoB02Yay(`*8pVaR`TT1V?cU$8iEDaSEq#24`^&=kW(F;36*JGXBIBT*Wn9$6vUC zo4AGBpz_=TM + + diff --git a/Toolbox/KJ135WBJYAlgInterfaceToolbox/KJ135WBJYAlgInterfaceToolbox.vcxproj.filters b/Toolbox/KJ135WBJYAlgInterfaceToolbox/KJ135WBJYAlgInterfaceToolbox.vcxproj.filters index f392d43..c82777d 100644 --- a/Toolbox/KJ135WBJYAlgInterfaceToolbox/KJ135WBJYAlgInterfaceToolbox.vcxproj.filters +++ b/Toolbox/KJ135WBJYAlgInterfaceToolbox/KJ135WBJYAlgInterfaceToolbox.vcxproj.filters @@ -32,22 +32,28 @@ Source Files + + Source Files + Header Files + + Header Files + - - Header Files - Header Files Header Files + + Header Files + diff --git a/Toolbox/KJ135WBJYAlgInterfaceToolbox/KJ135WBJYAlgWidgetComponet.cpp b/Toolbox/KJ135WBJYAlgInterfaceToolbox/KJ135WBJYAlgWidgetComponet.cpp index 5652a7d..31e482f 100644 --- a/Toolbox/KJ135WBJYAlgInterfaceToolbox/KJ135WBJYAlgWidgetComponet.cpp +++ b/Toolbox/KJ135WBJYAlgInterfaceToolbox/KJ135WBJYAlgWidgetComponet.cpp @@ -1,149 +1,225 @@ #include "KJ135WBJYAlgWidgetComponet.h" #include +#include - -FileSelectWidget::FileSelectWidget( ComponentType paramtype, QWidget* parent) - : QWidget(parent), - paramType(paramtype) +AbstractComponentWidget::AbstractComponentWidget(QWidget* parent) :QWidget(parent) +{ + this->componentType = ComponentType::UNKNOW; // ĬÈÏδ֪ÀàÐÍ + this->ParaName = QString(); // ²ÎÊýÃû³Æ + this->ParaChsName = QString(); // ²ÎÊýÖÐÎÄÃû³Æ + this->Description = QString(); // ²ÎÊýÃèÊö + this->Datatype = QString(); // Êý¾ÝÀàÐÍ + this->ParaType = QString(); // ²ÎÊýÀàÐÍ +} + +AbstractComponentWidget::~AbstractComponentWidget() +{ +} + +QString AbstractComponentWidget::getParaName() const +{ + return this->ParaName; +} + +void AbstractComponentWidget::setParaName(const QString& name) +{ + this->ParaName = name; +} + +QString AbstractComponentWidget::getParaChsName() const +{ + return this->ParaChsName; +} + +void AbstractComponentWidget::setParaChsName(const QString& name) +{ + this->ParaChsName = name; +} + +QString AbstractComponentWidget::getDescription() const +{ + + return this->Description; +} + +void AbstractComponentWidget::setDescription(const QString& description) +{ + this->setToolTip(description);// °ó¶¨Ìáʾ + this->Description = description; +} + +QString AbstractComponentWidget::getDatatype() const +{ + return this->Datatype; +} + +void AbstractComponentWidget::setDatatype(const QString& datatype) +{ + this->Datatype = datatype; +} + +QString AbstractComponentWidget::getParaType() const +{ + return this->ParaType; +} + +void AbstractComponentWidget::setParaType(const QString& type) +{ + this->ParaType = type; +} + +void AbstractComponentWidget::setComponentType(ComponentType type) +{ + this->componentType = type; +} + +ComponentType AbstractComponentWidget::getComponentType() const +{ + return this->componentType; +} + +// File ÎļþÑ¡Ôñ + +FileSelectWidget::FileSelectWidget(QWidget* parent) :AbstractComponentWidget(parent) { - this->m_pFileSelectButton = new QToolButton(this); - this->m_pFileSelectButton->setText("Select File"); - QObject::connect(m_pFileSelectButton, SIGNAL(clicked()), this, SLOT(onSelectFile())); - m_pFileNameEdit = new QLineEdit(this); - this->m_pFileNameLabel = new QLabel("Selected File:", this); - QHBoxLayout* layout = new QHBoxLayout(this); - layout->addWidget(m_pFileNameLabel); - layout->addWidget(m_pFileNameEdit); - layout->addWidget(m_pFileSelectButton); - setLayout(layout); } - FileSelectWidget::~FileSelectWidget() { - // Destructor implementation } -void FileSelectWidget::setFileName(const QString& fileName) +void FileSelectWidget::initUI() { - this->m_pFileNameEdit->setText(fileName); + // ³õʼ»¯¿Ø¼þ + // fileNameLabel + fileNameLabel = new QLabel(this); + fileNameLabel->setText(this->getParaName()); + + //filePathEdit + filePathEdit = new QLineEdit(this); + + // fileSelectButton + fileSelectButton = new QToolButton(this); + fileSelectButton->setText(u8"Ñ¡ÔñÎļþ"); + + + + // ÉèÖÃÎļþ×îС¿Ø¼þ¸ß¶È + fileNameLabel->setMinimumHeight(30); + filePathEdit->setMinimumHeight(30); + fileSelectButton->setMinimumHeight(30); + + // °ó¶¨ÐźÅ-²Û + QObject::connect(fileSelectButton, SIGNAL(clicked()) , this, SLOT(onFileSelectButtonClicked())); + + // ˮƽ²¼¾Ö + QHBoxLayout* layout = new QHBoxLayout(this); + layout->addWidget(fileNameLabel); + layout->addWidget(filePathEdit); + layout->addWidget(fileSelectButton); + this->setLayout(layout); + + } -QString FileSelectWidget::getFileName() const +QString FileSelectWidget::getValue() const { - return this->m_pFileNameEdit->text(); -} - -void FileSelectWidget::setLabelText(const QString& text) -{ - this->m_pFileNameLabel->setText(text); -} - -void FileSelectWidget::setDataTypeStr(const QString& str) -{ - this->DataTypeStr = str; -} - -void FileSelectWidget::onSelectFile() -{ - if (this->paramType == ComponentType::FolderSelect) + if (nullptr != filePathEdit) { - QString folderName = QFileDialog::getExistingDirectory(this, u8"Select Folder", ""); - if (!folderName.isEmpty()) - { - this->m_pFileNameEdit->setText(folderName); - emit fileSelected(folderName); - } - return; + return filePathEdit->text(); } - else if (this->paramType == ComponentType::FileSelect) + else { + QMessageBox::warning(nullptr, u8"¾¯¸æ", u8"ÇëÏÈÑ¡ÔñÎļþ"); + return QString(); + } +} + +void FileSelectWidget::onFileSelectButtonClicked() +{ + if (this->componentType == ComponentType::FileSelect) { - QString fileName = QFileDialog::getOpenFileName(this, u8"Select File", "", QString("All Files (*);;%1(*.%1)").arg(this->DataTypeStr)); + QString fileName = QFileDialog::getOpenFileName(this, u8"Ñ¡ÔñÎļþ", "", u8"ËùÓÐÎļþ(*.*);;Îı¾Îļþ(*.txt);;ͼÏñÎļþ(*.png *.jpg *.bmp)"); if (!fileName.isEmpty()) { - this->m_pFileNameEdit->setText(fileName); - emit fileSelected(fileName); + filePathEdit->setText(fileName); + } + else { + QMessageBox::warning(this, u8"¾¯¸æ", u8"ÇëÑ¡ÔñÎļþ"); } - return; } - else {} - + else if (this->componentType == ComponentType::FolderSelect) + { + QString fileName = QFileDialog::getOpenFileName(this, + QString(u8"Ñ¡Ôñ%1").arg(this->getParaChsName()), + "", + QString(u8"ËùÓÐÎļþ(*.*);;%1Îļþ(*.%2);;").arg(this->getDatatype()).arg(this->getDatatype())); + if (!fileName.isEmpty()) + { + filePathEdit->setText(fileName); + } + else { + QMessageBox::warning(this, u8"¾¯¸æ", u8"ÇëÑ¡ÔñÎļþ"); + } + } + else { + QString fileName = QFileDialog::getExistingDirectory(this, + QString(u8"Ñ¡ÔñÎļþ¼Ð£º%1").arg(this->getParaChsName()), + ""); + if (!fileName.isEmpty()) + { + filePathEdit->setText(fileName); + } + else { + QMessageBox::warning(this, u8"¾¯¸æ", u8"ÇëÑ¡ÔñÎļþ¼Ð"); + } + } } -/*************** ¸´Ñ¡¿ò **************************/ -ComboxSelectWidget::ComboxSelectWidget(QWidget* parent) + +// ÕûÊýÊäÈë×é¼þ +IntInputWidget::IntInputWidget(QWidget* parent) :AbstractComponentWidget(parent) { + } - -ComboxSelectWidget::~ComboxSelectWidget() -{ -} - -void ComboxSelectWidget::setLabelText(const QString& text) -{ -} - -void ComboxSelectWidget::setDataTypeStr(const QString& str) -{ -} - -void ComboxSelectWidget::addItem(const QString& item) -{ -} - -void ComboxSelectWidget::setCurrentIndex(int index) -{ -} - -void ComboxSelectWidget::setCurrentText(const QString& text) -{ -} - -QString ComboxSelectWidget::getCurrentText() const -{ - return QString(); -} - - - - - - -/*************** ÕûÊýÊäÈë **************************/ - - - -IntInputWidget::IntInputWidget(QWidget* parent) -{ -} - IntInputWidget::~IntInputWidget() { } -void IntInputWidget::setLabelText(const QString& text) +void IntInputWidget::initUI() { + fileNameLabel = new QLabel(this); + fileNameLabel->setText(this->getParaName()); + + + intInput = new QSpinBox(this); + intInput->setRange(-1000000, 1000000); + intInput->setSingleStep(1); + + // ÉèÖÃÎļþ×îС¿Ø¼þ¸ß¶È + fileNameLabel->setMinimumHeight(30); + intInput->setMinimumHeight(30); + // ˮƽ²¼¾Ö + QHBoxLayout* layout = new QHBoxLayout(this); + layout->addWidget(fileNameLabel); + layout->addWidget(intInput); + this->setLayout(layout); } -void IntInputWidget::setDataTypeStr(const QString& str) +QString IntInputWidget::getValue() const { + if (nullptr == this->intInput) + { + return QString(); + } + else { + return QString::number(this->intInput->value()); + } } + +// ¸¡µãÊýÊäÈë×é¼þ -void IntInputWidget::setValue(int value) -{ -} - -int IntInputWidget::getValue() const -{ - return 0; -} - - - -/*************** ¸¡µãÊýÊäÈë **************************/ - -DoubleInputWidget::DoubleInputWidget(QWidget* parent) +DoubleInputWidget::DoubleInputWidget(QWidget* parent) :AbstractComponentWidget(parent) { } @@ -151,19 +227,140 @@ DoubleInputWidget::~DoubleInputWidget() { } -void DoubleInputWidget::setLabelText(const QString& text) +void DoubleInputWidget::initUI() +{ + fileNameLabel = new QLabel(this); + fileNameLabel->setText(this->getParaName()); + + + doubleInput = new QDoubleSpinBox(this); + doubleInput->setRange(-1000000, 1000000); + doubleInput->setSingleStep(1e-6); + + // ÉèÖÃÎļþ×îС¿Ø¼þ¸ß¶È + fileNameLabel->setMinimumHeight(30); + doubleInput->setMinimumHeight(30); + // ˮƽ²¼¾Ö + QHBoxLayout* layout = new QHBoxLayout(this); + layout->addWidget(fileNameLabel); + layout->addWidget(doubleInput); + this->setLayout(layout); +} + +QString DoubleInputWidget::getValue() const +{ + if (nullptr != this->doubleInput) + { + return QString::number(this->doubleInput->value(),'e',14); + } + else { + return QString(); + } +} + + + +// ÕûÊýÊäÈë×é¼þ +ScopeIntInputWidget::ScopeIntInputWidget(QWidget* parent) :AbstractComponentWidget(parent) +{ + +} + +ScopeIntInputWidget::~ScopeIntInputWidget() { } -void DoubleInputWidget::setDataTypeStr(const QString& str) +void ScopeIntInputWidget::initUI() +{ + fileNameLabel = new QLabel(this); + fileNameLabel->setText(this->getParaName()); + intInputMin = new QSpinBox(this); + intInputMin->setRange(-1000000, 1000000); + intInputMin->setSingleStep(1); + + scopeConnectStr = new QLabel(this); + scopeConnectStr->setText(u8" - "); + + intInputMax = new QSpinBox(this); + intInputMax->setRange(-1000000, 1000000); + intInputMax->setSingleStep(1); + + // ÉèÖÃÎļþ×îС¿Ø¼þ¸ß¶È + fileNameLabel->setMinimumHeight(30); + intInputMin->setMinimumHeight(30); + intInputMax->setMinimumHeight(30); + // ˮƽ²¼¾Ö + QHBoxLayout* layout = new QHBoxLayout(this); + layout->addWidget(fileNameLabel); + layout->addWidget(intInputMin); + layout->addWidget(scopeConnectStr); + layout->addWidget(intInputMax); + this->setLayout(layout); +} + +QString ScopeIntInputWidget::getValue() const +{ + if (nullptr != intInputMin && nullptr != intInputMax) + { + return QString("%1;%2") + .arg(QString::number(intInputMin->value())) + .arg(QString::number(intInputMax->value())); + } + else { + QMessageBox::warning(nullptr, u8"¾¯¸æ", u8"ÇëÏÈÊäÈë"); + } + return QString(); +} + + + +// ¸¡µãÊýÊäÈë×é¼þ +ScopeDoubleInputWidget::ScopeDoubleInputWidget(QWidget* parent) :AbstractComponentWidget(parent) { } -void DoubleInputWidget::setValue(double value) +ScopeDoubleInputWidget::~ScopeDoubleInputWidget() { } -double DoubleInputWidget::getValue() const +void ScopeDoubleInputWidget::initUI() { - return 0.0; + fileNameLabel = new QLabel(this); + fileNameLabel->setText(this->getParaName()); + doubleInputMin = new QDoubleSpinBox(this); + doubleInputMax->setRange(-1000000, 1000000); + doubleInputMin->setSingleStep(1); + + scopeConnectStr = new QLabel(this); + scopeConnectStr->setText(u8" - "); + + doubleInputMax = new QDoubleSpinBox(this); + doubleInputMax->setRange(-1000000, 1000000); + doubleInputMax->setSingleStep(1); + + // ÉèÖÃÎļþ×îС¿Ø¼þ¸ß¶È + fileNameLabel->setMinimumHeight(30); + doubleInputMin->setMinimumHeight(30); + doubleInputMax->setMinimumHeight(30); + // ˮƽ²¼¾Ö + QHBoxLayout* layout = new QHBoxLayout(this); + layout->addWidget(fileNameLabel); + layout->addWidget(doubleInputMin); + layout->addWidget(scopeConnectStr); + layout->addWidget(doubleInputMax); + this->setLayout(layout); +} + +QString ScopeDoubleInputWidget::getValue() const +{ + if (nullptr != doubleInputMin && nullptr != doubleInputMax) + { + return QString("%1;%2") + .arg(QString::number(doubleInputMin->value(),'e',14)) + .arg(QString::number(doubleInputMax->value(), 'e', 14)); + } + else { + QMessageBox::warning(nullptr, u8"¾¯¸æ", u8"ÇëÏÈÊäÈë"); + } + return QString(); } diff --git a/Toolbox/KJ135WBJYAlgInterfaceToolbox/KJ135WBJYAlgWidgetComponet.h b/Toolbox/KJ135WBJYAlgInterfaceToolbox/KJ135WBJYAlgWidgetComponet.h index bfd129b..6f314d2 100644 --- a/Toolbox/KJ135WBJYAlgInterfaceToolbox/KJ135WBJYAlgWidgetComponet.h +++ b/Toolbox/KJ135WBJYAlgInterfaceToolbox/KJ135WBJYAlgWidgetComponet.h @@ -26,106 +26,181 @@ #include + + ///

/// ²ÎÊýÀàÐÍö¾Ù /// enum ComponentType{ - FileSelect = 0, // ÎļþÑ¡Ôñ + UNKNOW = 0, // δ֪ÀàÐÍ + FileSelect , // ÎļþÑ¡Ôñ FolderSelect, // Îļþ¼ÐÑ¡Ôñ ComboxSelect,// ö¾Ù¶àÑ¡ IntInput,// ÕûÊýÊäÈë DoubleInput,// ¸¡µãÊýÊäÈë - + MultipleSelect,// ¶àÑ¡ + ScopeIntInput,// ÕûÊý·¶Î§ÊäÈë + ScopeDoubleInput,// ¸¡µãÊý·¶Î§ÊäÈë }; -class FileSelectWidget : public QWidget + + + + +/** + +CoveringIDs +µØ±í¸²¸ÇÀàÐÍÊý¾ÝµÄÀà±ðid +µØ±í¸²¸ÇÀàÐÍÊý¾ÝÖÐÖ²±»ÇøÓò¡¢ÂãÍÁÇøÓòµÄÀà±ðid,¶à¸öidʹÓá°;¡±·Ö¸î¡£Ê¾Àý£ºGlobeLand30Êý¾ÝµÄcover_roi_ids = 10;20;30;40;50;70;71;72;83;74;90 +Value +string +Man +1;4;5;6;7;11;10;20;30;50;60;70;71;72;73;74;80;90;255 +True +False +UploadInput +Aux +0 +Aux +DEFAULT +DEFAULT +DEFAULT +DEFAULT +DEFAULT + + +**/ + +class AbstractComponentWidget : public QWidget { Q_OBJECT public: - FileSelectWidget(ComponentType paramtype = ComponentType::FileSelect,QWidget* parent = nullptr); + AbstractComponentWidget(QWidget* parent = nullptr); + ~AbstractComponentWidget(); + +protected: + QString ParaName; // ²ÎÊýÃû³Æ + QString ParaChsName;// ²ÎÊýÖÐÎÄÃû³Æ + QString Description;// ²ÎÊýÃèÊö + + QString Datatype;// Êý¾ÝÀàÐÍ Value // ¾ö¶¨²ÎÊýµÄÊäÈëÀàÐÍ + QString ParaType;// ²ÎÊýÀàÐÍ string + + ComponentType componentType = ComponentType::UNKNOW; // ×é¼þÀàÐÍ +public://ÊôÐÔ²Ù×÷ + QString getParaName() const; + void setParaName(const QString& name); + // ÉèÖòÎÊýÖÐÎÄÃû³Æ + QString getParaChsName() const; + void setParaChsName(const QString& name); + // ÉèÖòÎÊýÃèÊö + QString getDescription() const; + void setDescription(const QString& description); + // ÉèÖÃÊý¾ÝÀàÐÍ + QString getDatatype() const; + void setDatatype(const QString& datatype); + // ÉèÖòÎÊýÀàÐÍ + QString getParaType() const; + void setParaType(const QString& type); + + void setComponentType(ComponentType type); + ComponentType getComponentType() const; +}; + +/// +/// File ÎļþÑ¡Ôñ×é¼þ +/// +class FileSelectWidget : public AbstractComponentWidget +{ + Q_OBJECT +public: + FileSelectWidget(QWidget* parent = nullptr); ~FileSelectWidget(); - - void setFileName(const QString& fileName); - QString getFileName() const; - - void setLabelText(const QString& text); - void setDataTypeStr(const QString& str); -private slots: - void onSelectFile(); - -signals: - void fileSelected(const QString& fileName); + void initUI(); private: - QToolButton* m_pFileSelectButton; - QLineEdit* m_pFileNameEdit; - QLabel* m_pFileNameLabel; - QString DataTypeStr; - ComponentType paramType; -}; - - -class ComboxSelectWidget : public QWidget -{ - Q_OBJECT + QLabel* fileNameLabel=nullptr; // ÎļþÃû³Æ + QLineEdit* filePathEdit = nullptr; + QToolButton* fileSelectButton = nullptr; + public slots: + void onFileSelectButtonClicked(); public: - ComboxSelectWidget(QWidget* parent = nullptr); - ~ComboxSelectWidget(); - void setLabelText(const QString& text); - void setDataTypeStr(const QString& str); - void addItem(const QString& item); - void setCurrentIndex(int index); - void setCurrentText(const QString& text); - QString getCurrentText() const; -private: - QComboBox* m_pCombox; - QLabel* m_pComboxLabel; - QString DataTypeStr; -}; + QString getValue() const; + }; -class IntInputWidget : public QWidget +/// +/// intÊäÈë×é¼þ +/// +class IntInputWidget : public AbstractComponentWidget { Q_OBJECT public: IntInputWidget(QWidget* parent = nullptr); ~IntInputWidget(); - void setLabelText(const QString& text); - void setDataTypeStr(const QString& str); - void setValue(int value); - int getValue() const; + void initUI(); private: - QSpinBox* m_pIntInput; - QLabel* m_pIntInputLabel; - QString DataTypeStr; + QLabel* fileNameLabel = nullptr; // ÎļþÃû³Æ + QSpinBox* intInput = nullptr; + +public: + QString getValue() const; + }; -class DoubleInputWidget : public QWidget +/// +/// double ÊäÈë×é¼þ +/// +class DoubleInputWidget : public AbstractComponentWidget { Q_OBJECT public: DoubleInputWidget(QWidget* parent = nullptr); ~DoubleInputWidget(); - void setLabelText(const QString& text); - void setDataTypeStr(const QString& str); - void setValue(double value); - double getValue() const; + void initUI(); private: - QDoubleSpinBox* m_pDoubleInput; - QLabel* m_pDoubleInputLabel; - QString DataTypeStr; + QLabel* fileNameLabel = nullptr; // ÎļþÃû³Æ + QDoubleSpinBox* doubleInput = nullptr; + public: + QString getValue() const; + }; + +/// +/// ÕûÊýÖµ Êý¾Ý·¶Î§ÊäÈë×é¼þ +/// +class ScopeIntInputWidget : public AbstractComponentWidget +{ + Q_OBJECT +public: + ScopeIntInputWidget(QWidget* parent = nullptr); + ~ScopeIntInputWidget(); + void initUI(); +private: + QLabel* fileNameLabel = nullptr; // ÎļþÃû³Æ + QLabel* scopeConnectStr = nullptr; // ÎļþÃû³Æ + QSpinBox* intInputMin = nullptr; + QSpinBox* intInputMax = nullptr; +public: + QString getValue() const; }; - - - - - - - - - - - +/// +/// ¸¡µãÊýÖµ Êý¾Ý·¶Î§ÊäÈë×é¼þ +/// +class ScopeDoubleInputWidget : public AbstractComponentWidget +{ + Q_OBJECT +public: + ScopeDoubleInputWidget(QWidget* parent = nullptr); + ~ScopeDoubleInputWidget(); + void initUI(); +private: + QLabel* fileNameLabel = nullptr; // ÎļþÃû³Æ + QLabel* scopeConnectStr = nullptr; // ÎļþÃû³Æ + QDoubleSpinBox* doubleInputMin = nullptr; + QDoubleSpinBox* doubleInputMax = nullptr; +public: + QString getValue() const; +}; diff --git a/Toolbox/KJ135WBJYAlgInterfaceToolbox/QWBFZAlgComponetXmlParamsDialog.cpp b/Toolbox/KJ135WBJYAlgInterfaceToolbox/QWBFZAlgComponetXmlParamsDialog.cpp index 2d88e6e..15ebdb7 100644 --- a/Toolbox/KJ135WBJYAlgInterfaceToolbox/QWBFZAlgComponetXmlParamsDialog.cpp +++ b/Toolbox/KJ135WBJYAlgInterfaceToolbox/QWBFZAlgComponetXmlParamsDialog.cpp @@ -22,7 +22,9 @@ void WBFZAlgComponetLoadXmlParamsProcess() return; } else { + // TODO: ½âÎöxmlÎļþ£¬¼ÓÔØ²ÎÊý } + return; } diff --git a/Toolbox/KJ135WBJYAlgInterfaceToolbox/QWBFZAlgComponetXmlParamsDialog.ui b/Toolbox/KJ135WBJYAlgInterfaceToolbox/QWBFZAlgComponetXmlParamsDialog.ui index 89152af..5bf6b56 100644 --- a/Toolbox/KJ135WBJYAlgInterfaceToolbox/QWBFZAlgComponetXmlParamsDialog.ui +++ b/Toolbox/KJ135WBJYAlgInterfaceToolbox/QWBFZAlgComponetXmlParamsDialog.ui @@ -16,6 +16,9 @@ + + + true diff --git a/Toolbox/KJ135WBJYAlgInterfaceToolbox/WBFZAlgComponetXmlParaseOperator.cpp b/Toolbox/KJ135WBJYAlgInterfaceToolbox/WBFZAlgComponetXmlParaseOperator.cpp new file mode 100644 index 0000000..05beed6 --- /dev/null +++ b/Toolbox/KJ135WBJYAlgInterfaceToolbox/WBFZAlgComponetXmlParaseOperator.cpp @@ -0,0 +1 @@ +#include "WBFZAlgComponetXmlParaseOperator.h" diff --git a/Toolbox/KJ135WBJYAlgInterfaceToolbox/WBFZAlgComponetXmlParaseOperator.h b/Toolbox/KJ135WBJYAlgInterfaceToolbox/WBFZAlgComponetXmlParaseOperator.h new file mode 100644 index 0000000..a7a5744 --- /dev/null +++ b/Toolbox/KJ135WBJYAlgInterfaceToolbox/WBFZAlgComponetXmlParaseOperator.h @@ -0,0 +1,67 @@ +#pragma once +#ifndef __WBFZAlgComponetXmlParaseOperator_H__ +#define __WBFZAlgComponetXmlParaseOperator_H__ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "KJ135WBJYAlgWidgetComponet.h" // Ëã·¨×é¼þ²ÎÊý½çÃæ×é¼þÀà + + +// Ëã·¨×é¼þ²ÎÊýxmlÏî +class WBFZAlgComponetXmlParamenterItem +{ +public: + WBFZAlgComponetXmlParamenterItem(QDomElement* itemparameter); + ~WBFZAlgComponetXmlParamenterItem(); + void setName(const QString& name); + void setValue(const QString& value); + QString getName() const; + QString getValue() const; + QString WriteXml() const; +private: + QString name; // ²ÎÊýÃû³Æ + QString value;// ²ÎÊýÖµ + QString Datatype;// ²ÎÊýÀàÐÍ + QString ParaType;// ²ÎÊýÀàÐÍ + QDomElement* itemparameter; +}; + +// Ëã·¨×é¼þxml²ÎÊý½âÎöÖ÷Àà +class WBFZAlgComponetXmlParaseOperator +{ +public: + WBFZAlgComponetXmlParaseOperator(); + ~WBFZAlgComponetXmlParaseOperator(); + void loadXmlFile(const QString& fileName); + +private: + void parseXmlFile(); + void displayParsedData(); + +private: + QString workSpacePath; + +private:// ²ÎÊýÎļþ½á¹¹ + + + +}; + + + +#endif// __WBFZAlgComponetXmlParaseOperator_H__ +