From 005abdb827b5efd5b382a482d5ef5c4f4b249144 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E5=A2=9E=E8=BE=89?= <3045316072@qq.com> Date: Thu, 10 Apr 2025 19:15:14 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0vrt=20=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E8=BD=AC=20envidata=E6=A0=BC=E5=BC=8F=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Toolbox/BaseToolbox/BaseToolbox.cpp | 21 ++- Toolbox/BaseToolbox/BaseToolbox.h | 18 ++- Toolbox/BaseToolbox/BaseToolbox.vcxproj | 3 + .../BaseToolbox/BaseToolbox.vcxproj.filters | 9 ++ .../BaseToolbox/RasterVRT2ENVIdataDialog.cpp | 78 +++++++++++ .../BaseToolbox/RasterVRT2ENVIdataDialog.h | 26 ++++ .../BaseToolbox/RasterVRT2ENVIdataDialog.ui | 126 ++++++++++++++++++ 7 files changed, 279 insertions(+), 2 deletions(-) create mode 100644 Toolbox/BaseToolbox/BaseToolbox/RasterVRT2ENVIdataDialog.cpp create mode 100644 Toolbox/BaseToolbox/BaseToolbox/RasterVRT2ENVIdataDialog.h create mode 100644 Toolbox/BaseToolbox/BaseToolbox/RasterVRT2ENVIdataDialog.ui diff --git a/Toolbox/BaseToolbox/BaseToolbox.cpp b/Toolbox/BaseToolbox/BaseToolbox.cpp index 1bad4fa..8d35a95 100644 --- a/Toolbox/BaseToolbox/BaseToolbox.cpp +++ b/Toolbox/BaseToolbox/BaseToolbox.cpp @@ -13,6 +13,7 @@ #include "QResampleRefrenceRaster.h" #include "QtLookTableCorrectOffsetDialog.h" #include "QtCreateGPSPointsDialog.h" +#include "RasterVRT2ENVIdataDialog.h" GF3ImportDataToolButton::GF3ImportDataToolButton(QWidget* parent) :QToolAbstract(parent) { @@ -115,6 +116,7 @@ void RegisterPreToolBox(LAMPMainWidget::RasterMainWidget* mainwindows, ToolBoxWi emit toolbox->addBoxToolItemSIGNAL(new QResampleRefrenceRasterToolButton(toolbox)); emit toolbox->addBoxToolItemSIGNAL(new QLookTableCorrectOffsetToolButton(toolbox)); emit toolbox->addBoxToolItemSIGNAL(new QCreateGPSPointsToolButton(toolbox)); + emit toolbox->addBoxToolItemSIGNAL(new RasterVRT2ENVIdataDialogToolButton(toolbox)); } QDEMResampleDialogToolButton::QDEMResampleDialogToolButton(QWidget* parent) @@ -215,4 +217,21 @@ void QCreateGPSPointsToolButton::excute() { QtCreateGPSPointsDialog* dialog = new QtCreateGPSPointsDialog; dialog->show(); -} \ No newline at end of file +} + +RasterVRT2ENVIdataDialogToolButton::RasterVRT2ENVIdataDialogToolButton(QWidget* parent) +{ + this->toolPath = QVector(0); + this->toolPath.push_back(u8"基础处理"); + this->toolname = QString(u8"vrt文件转换envi数据格式"); +} + +RasterVRT2ENVIdataDialogToolButton::~RasterVRT2ENVIdataDialogToolButton() +{ +} + +void RasterVRT2ENVIdataDialogToolButton::run() +{ + RasterVRT2ENVIdataDialog* dialog = new RasterVRT2ENVIdataDialog; + dialog->show(); +} diff --git a/Toolbox/BaseToolbox/BaseToolbox.h b/Toolbox/BaseToolbox/BaseToolbox.h index 5c15ea7..42a024b 100644 --- a/Toolbox/BaseToolbox/BaseToolbox.h +++ b/Toolbox/BaseToolbox/BaseToolbox.h @@ -10,6 +10,8 @@ namespace LAMPMainWidget { class ToolBoxWidget; +extern "C" BASETOOLBOX_EXPORT void RegisterPreToolBox(LAMPMainWidget::RasterMainWidget* mainwindows, ToolBoxWidget* toolbox); + class BASETOOLBOX_EXPORT GF3ImportDataToolButton : public QToolAbstract { Q_OBJECT public: @@ -132,4 +134,18 @@ public slots: }; -extern "C" BASETOOLBOX_EXPORT void RegisterPreToolBox(LAMPMainWidget::RasterMainWidget* mainwindows, ToolBoxWidget* toolbox); + + + + +class BASETOOLBOX_EXPORT RasterVRT2ENVIdataDialogToolButton : public QToolAbstract { + Q_OBJECT +public: + RasterVRT2ENVIdataDialogToolButton(QWidget* parent = nullptr); + ~RasterVRT2ENVIdataDialogToolButton(); +public : + virtual void run() override; + +}; + + diff --git a/Toolbox/BaseToolbox/BaseToolbox.vcxproj b/Toolbox/BaseToolbox/BaseToolbox.vcxproj index 5ec3f82..699771e 100644 --- a/Toolbox/BaseToolbox/BaseToolbox.vcxproj +++ b/Toolbox/BaseToolbox/BaseToolbox.vcxproj @@ -207,6 +207,7 @@ + @@ -225,6 +226,7 @@ + @@ -246,6 +248,7 @@ + diff --git a/Toolbox/BaseToolbox/BaseToolbox.vcxproj.filters b/Toolbox/BaseToolbox/BaseToolbox.vcxproj.filters index 03e37b6..0eb5ad3 100644 --- a/Toolbox/BaseToolbox/BaseToolbox.vcxproj.filters +++ b/Toolbox/BaseToolbox/BaseToolbox.vcxproj.filters @@ -106,6 +106,9 @@ BaseToolbox + + BaseToolbox + @@ -147,6 +150,9 @@ BaseToolbox + + BaseToolbox + @@ -185,5 +191,8 @@ BaseToolbox + + BaseToolbox + \ No newline at end of file diff --git a/Toolbox/BaseToolbox/BaseToolbox/RasterVRT2ENVIdataDialog.cpp b/Toolbox/BaseToolbox/BaseToolbox/RasterVRT2ENVIdataDialog.cpp new file mode 100644 index 0000000..42e2ed3 --- /dev/null +++ b/Toolbox/BaseToolbox/BaseToolbox/RasterVRT2ENVIdataDialog.cpp @@ -0,0 +1,78 @@ +#include "RasterVRT2ENVIdataDialog.h" +#include "ui_RasterVRT2ENVIdataDialog.h" +#include "BaseConstVariable.h" +#include "BaseTool.h" +#include "RasterToolBase.h" +#include "LogInfoCls.h" +#include +#include +#include "ImageNetOperator.h" +#include "ImageOperatorBase.h" + +RasterVRT2ENVIdataDialog::RasterVRT2ENVIdataDialog(QWidget *parent) + : QDialog(parent) + ,ui(new Ui::RasterVRT2ENVIdataDialogClass) +{ + ui->setupUi(this); + + connect(ui->pushButtonVRTSelect, SIGNAL(clicked()), this, SLOT(onpushButtonVRTSelect_clicked())); + connect(ui->pushButtonENVIDatSelect, SIGNAL(clicked()), this, SLOT(onpushButtonENVIDatSelect_clicked())); + connect(ui->buttonBox, SIGNAL(accepted()), this, SLOT(onbuttonBox_accepted())); + connect(ui->buttonBox, SIGNAL(rejected()), this, SLOT(onbuttonBox_rejected())); + +} + +RasterVRT2ENVIdataDialog::~RasterVRT2ENVIdataDialog() +{} + +void RasterVRT2ENVIdataDialog::onpushButtonVRTSelect_clicked() +{ + QString fileNames = QFileDialog::getOpenFileName( + this, // 父窗口 + tr(u8"选择L1B数据文件"), // 标题 + QString(), // 默认路径 + tr(ENVI_FILE_FORMAT_FILTER) // 文件过滤器 + ); + // 如果用户选择了文件 + if (!fileNames.isEmpty()) { + QString message = "选择的文件有:\n"; + this->ui->lineEditVRTPath->setText(fileNames); + } + else { + QMessageBox::information(this, tr(u8"没有选择文件"), tr(u8"没有选择任何文件。")); + } +} + +void RasterVRT2ENVIdataDialog::onpushButtonENVIDatSelect_clicked() +{ + QString fileNames = QFileDialog::getSaveFileName( + this, // 父窗口 + tr(u8"选择L1B数据文件"), // 标题 + QString(), // 默认路径 + tr(ENVI_FILE_FORMAT_FILTER) // 文件过滤器 + ); + // 如果用户选择了文件 + if (!fileNames.isEmpty()) { + QString message = "选择的文件有:\n"; + this->ui->lineEditENVIDatPath->setText(fileNames); + } + else { + QMessageBox::information(this, tr(u8"没有选择文件"), tr(u8"没有选择任何文件。")); + } +} + +void RasterVRT2ENVIdataDialog::onbuttonBox_accepted() +{ + QString vrtrasterpath = ui->lineEditVRTPath->text(); + QString envidatapath = ui->lineEditENVIDatPath->text(); + + ConvertVrtToEnvi(vrtrasterpath, envidatapath); + + + QMessageBox::information(this, tr(u8"提示"), tr(u8"完成")); +} + +void RasterVRT2ENVIdataDialog::onbuttonBox_rejected() +{ + this->close(); +} diff --git a/Toolbox/BaseToolbox/BaseToolbox/RasterVRT2ENVIdataDialog.h b/Toolbox/BaseToolbox/BaseToolbox/RasterVRT2ENVIdataDialog.h new file mode 100644 index 0000000..b4123c8 --- /dev/null +++ b/Toolbox/BaseToolbox/BaseToolbox/RasterVRT2ENVIdataDialog.h @@ -0,0 +1,26 @@ +#pragma once + +#include + +namespace Ui { + class RasterVRT2ENVIdataDialogClass; +} + + +class RasterVRT2ENVIdataDialog : public QDialog +{ + Q_OBJECT + +public: + RasterVRT2ENVIdataDialog(QWidget *parent = nullptr); + ~RasterVRT2ENVIdataDialog(); + + +public slots: + void onpushButtonVRTSelect_clicked(); + void onpushButtonENVIDatSelect_clicked(); + void onbuttonBox_accepted(); + void onbuttonBox_rejected(); +private: + Ui::RasterVRT2ENVIdataDialogClass* ui; +}; diff --git a/Toolbox/BaseToolbox/BaseToolbox/RasterVRT2ENVIdataDialog.ui b/Toolbox/BaseToolbox/BaseToolbox/RasterVRT2ENVIdataDialog.ui new file mode 100644 index 0000000..9e76517 --- /dev/null +++ b/Toolbox/BaseToolbox/BaseToolbox/RasterVRT2ENVIdataDialog.ui @@ -0,0 +1,126 @@ + + + RasterVRT2ENVIdataDialogClass + + + + 0 + 0 + 396 + 156 + + + + RasterVRT2ENVIdataDialog + + + + + + + 0 + 30 + + + + 閫夋嫨 + + + + + + + + 0 + 30 + + + + + + + + + + + + 0 + 30 + + + + + + + + + + + + 0 + 30 + + + + 閫夋嫨 + + + + + + + + 0 + 30 + + + + QDialogButtonBox::Cancel|QDialogButtonBox::Ok + + + + + + + + 0 + 30 + + + + vrt鏂囦欢鍦板潃锛 + + + + + + + + 0 + 30 + + + + 杈撳嚭dat鍦板潃锛 + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + + +