diff --git a/BaseLibraryCPP b/BaseLibraryCPP index 2a424bd..458be41 160000 --- a/BaseLibraryCPP +++ b/BaseLibraryCPP @@ -1 +1 @@ -Subproject commit 2a424bd634f51a58043494bc074fe5687e65c921 +Subproject commit 458be41d96524bbdad14aaa0b6184a5de387e7e5 diff --git a/GF3ProcessToolbox/QOrthSlrRaster.cpp b/GF3ProcessToolbox/QOrthSlrRaster.cpp new file mode 100644 index 0000000..09e9735 --- /dev/null +++ b/GF3ProcessToolbox/QOrthSlrRaster.cpp @@ -0,0 +1,115 @@ +#include "QOrthSlrRaster.h" +#include +#include +#include "QToolProcessBarDialog.h" +#include "BaseTool.h" +#include "FileOperator.h" +#include "GF3CalibrationAndGeocodingClass.h" + + +QOrthSlrRaster::QOrthSlrRaster(QWidget *parent) + : QDialog(parent) +{ + ui.setupUi(this); + + connect(ui.pushButtonAdd, SIGNAL(clicked(bool)), this, SLOT(onpushButtonAddClicked(bool))); + connect(ui.pushButtonRemove, SIGNAL(clicked(bool)), this, SLOT(onpushButtonRemoveClicked(bool))); + connect(ui.pushButtonDEMSelect, SIGNAL(clicked(bool)), this, SLOT(onpushButtonWorkSpaceClicked(bool))); + connect(ui.pushButtonWorkSpace, SIGNAL(clicked(bool)), this, SLOT(pushButtonDEMSelectClicked(bool))); + +} + +QOrthSlrRaster::~QOrthSlrRaster() +{} + +void QOrthSlrRaster::accept() +{ + QToolProcessBarDialog* processdialog = new QToolProcessBarDialog(this); + processdialog->show(); + processdialog->showProcess(0.0, u8"正射影像生成"); + QVector infile(ui.listWidgetMetaxml->count()); + QString outworkdirstring = ui.lineEditWorkDir->text(); + QString inlooktablePath = ui.lineEditDEM->text(); + for (long i = 0; i < ui.listWidgetMetaxml->count(); i++) { + infile[i] = ui.listWidgetMetaxml->item(i)->text(); + processdialog->showToolInfo(u8"输入影像:\t" + infile[i]); + processdialog->showToolInfo(u8"输入查找表:\t" + inlooktablePath); + processdialog->showToolInfo(u8"输出工作空间:\t" + outworkdirstring); + QString outname = getFileNameWidthoutExtend(infile[i])+"_orth.tif"; + processdialog->showToolInfo(u8"正射文件名:\t" + outname); + QString outstring = JoinPath(outworkdirstring, outname); + + if (GF3OrthSLC(infile[i], inlooktablePath, outstring) == SUCCESS) { + processdialog->showToolInfo(u8"正射生成成功"); + } + else { + processdialog->showToolInfo(u8"正射生成失败"); + } + } + processdialog->close(); +} + +void QOrthSlrRaster::reject() +{ + this->close(); +} + +void QOrthSlrRaster::onpushButtonAddClicked(bool) +{ + QStringList fileNames = QFileDialog::getOpenFileNames( + this, // 父窗口 + tr(u8"选择xml文件"), // 标题 + QString(), // 默认路径 + tr(u8"xml Files (*.xml);;All Files (*)") // 文件过滤器 + ); + + // 如果用户选择了文件 + if (!fileNames.isEmpty()) { + QString message = "选择的文件有:\n"; + for (const QString& fileName : fileNames) { + this->ui.listWidgetMetaxml->addItem(fileName); + } + } + else { + QMessageBox::information(this, tr(u8"没有选择文件"), tr(u8"没有选择任何文件。")); + } +} + +void QOrthSlrRaster::onpushButtonRemoveClicked(bool) +{ + QList selectedItems = this->ui.listWidgetMetaxml->selectedItems(); + for (QListWidgetItem* item : selectedItems) { + delete this->ui.listWidgetMetaxml->takeItem(this->ui.listWidgetMetaxml->row(item)); + } +} + +void QOrthSlrRaster::onpushButtonWorkSpaceClicked(bool) +{ + QString fileName = QFileDialog::getExistingDirectory(this, u8"选择工作空间路径", ""); + + if (!fileName.isEmpty()) { + this->ui.lineEditWorkDir->setText(fileName); + } + else { + QMessageBox::information(this, u8"没有选择文件夹", u8"没有选择任何文件夹"); + } +} + +void QOrthSlrRaster::pushButtonDEMSelectClicked(bool) +{ + QString fileName = QFileDialog::getOpenFileName( + this, // 父窗口 + tr(u8"选择tif文件"), // 标题 + QString(), // 默认路径 + tr(u8"tif Files (*.tif);;All Files (*)") // 文件过滤器 + ); + + // 如果用户选择了文件 + if (!fileName.isEmpty()) { + QString message = "选择的文件有:\n"; + ui.lineEditDEM->setText(fileName); + } + else { + QMessageBox::information(this, tr(u8"没有选择文件"), tr(u8"没有选择任何文件。")); + } +} diff --git a/GF3ProcessToolbox/QOrthSlrRaster.h b/GF3ProcessToolbox/QOrthSlrRaster.h new file mode 100644 index 0000000..a4194fd --- /dev/null +++ b/GF3ProcessToolbox/QOrthSlrRaster.h @@ -0,0 +1,25 @@ +#pragma once + +#include +#include "ui_QOrthSlrRaster.h" + +class QOrthSlrRaster : public QDialog +{ + Q_OBJECT + +public: + QOrthSlrRaster(QWidget *parent = nullptr); + ~QOrthSlrRaster(); + +private: + Ui::QOrthSlrRasterClass ui; + +public slots: + void accept(); + void reject(); + void onpushButtonAddClicked(bool); + void onpushButtonRemoveClicked(bool); + void onpushButtonWorkSpaceClicked(bool); + void pushButtonDEMSelectClicked(bool); + +}; diff --git a/GF3ProcessToolbox/QOrthSlrRaster.ui b/GF3ProcessToolbox/QOrthSlrRaster.ui new file mode 100644 index 0000000..8b70dc3 --- /dev/null +++ b/GF3ProcessToolbox/QOrthSlrRaster.ui @@ -0,0 +1,234 @@ + + + QOrthSlrRasterClass + + + + 0 + 0 + 600 + 400 + + + + 鏍规嵁鏌ユ壘琛ㄦ灏勫浘鍍 + + + + + + QFrame::StyledPanel + + + QFrame::Raised + + + + + + QAbstractItemView::MultiSelection + + + + + + + QFrame::StyledPanel + + + QFrame::Raised + + + + + + + 0 + 30 + + + + 閫夋嫨 + + + + + + + + 0 + 30 + + + + 鍒犻櫎 + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + + + + + + + QFrame::StyledPanel + + + QFrame::Raised + + + + + + + 0 + 30 + + + + LookTable璺緞锛 + + + + + + + + 0 + 30 + + + + + + + + + 0 + 30 + + + + 閫夋嫨 + + + + + + + + + + QFrame::StyledPanel + + + QFrame::Raised + + + + + + + 0 + 30 + + + + 杈撳嚭鍦板潃锛 + + + + + + + + 0 + 30 + + + + + + + + + 0 + 30 + + + + 閫夋嫨 + + + + + + + + + + + 0 + 32 + + + + QDialogButtonBox::Cancel|QDialogButtonBox::Ok + + + + + + + + + + buttonBox + accepted() + QOrthSlrRasterClass + accept() + + + 299 + 374 + + + 299 + 199 + + + + + buttonBox + rejected() + QOrthSlrRasterClass + reject() + + + 299 + 374 + + + 299 + 199 + + + + + diff --git a/GF3ProcessToolbox/QRDOrthProcessClass.cpp b/GF3ProcessToolbox/QRDOrthProcessClass.cpp index 42365fb..e3b5212 100644 --- a/GF3ProcessToolbox/QRDOrthProcessClass.cpp +++ b/GF3ProcessToolbox/QRDOrthProcessClass.cpp @@ -1,24 +1,20 @@ #include "QRDOrthProcessClass.h" #include #include +#include "QToolProcessBarDialog.h" +#include QRDOrthProcessClass::QRDOrthProcessClass(QWidget *parent) : QDialog(parent) { ui.setupUi(this); - - QListWidget* listWidgetMetaxml; - - - QPushButton* pushButtonAdd; - QPushButton* pushButtonRemove; - QLineEdit* lineEditDEM; - QPushButton* pushButtonDEMSelect; - QHBoxLayout* horizontalLayout_2; - QLineEdit* lineEditWorkDir; - QPushButton* pushButtonWorkSpace; - QDialogButtonBox* buttonBox; - + connect(ui.pushButtonAdd,SIGNAL(clicked(bool)),this,SLOT(onpushButtonAddClicked(bool))); + connect(ui.pushButtonRemove,SIGNAL(clicked(bool)),this,SLOT(onpushButtonRemoveClicked(bool))); + connect(ui.pushButtonDEMSelect,SIGNAL(clicked(bool)),this,SLOT(onpushButtonWorkSpaceClicked(bool))); + connect(ui.pushButtonWorkSpace, SIGNAL(clicked(bool)), this, SLOT(pushButtonDEMSelectClicked(bool))); + // QDialogButtonBox* buttonBox; + //QLineEdit* lineEditDEM; + //QLineEdit* lineEditWorkDir; } @@ -27,6 +23,34 @@ QRDOrthProcessClass::~QRDOrthProcessClass() void QRDOrthProcessClass::accept() { + QToolProcessBarDialog* processdialog = new QToolProcessBarDialog(this); + processdialog->show(); + processdialog->showProcess(0.0, u8"查找表生成"); + QVector infile(ui.listWidgetMetaxml->count()); + QString outstring = ui.lineEditWorkDir->text(); + QString indemPath = ui.lineEditDEM->text(); + double gridx = ui.lineEdit_gridx->text().toDouble(); + double gridy = ui.lineEdit_gridy->text().toDouble(); + for (long i = 0; i < ui.listWidgetMetaxml->count(); i++) { + infile[i] = ui.listWidgetMetaxml->item(i)->text(); + processdialog->showToolInfo(u8"输入参数:\t"+ infile[i]); + processdialog->showToolInfo(u8"输入DEM:\t"+ indemPath); + processdialog->showToolInfo(u8"输出工作空间:\t"+outstring); + processdialog->showToolInfo(u8"网格X:\t"+ ui.lineEdit_gridx->text()); + processdialog->showToolInfo(u8"网格Y:\t"+ ui.lineEdit_gridy->text()); + + if (GF3RDProcess(infile[i], indemPath, outstring, gridx, gridy) == SUCCESS) { + processdialog->showToolInfo(u8"正射表生成成功"); + } + else { + processdialog->showToolInfo(u8"正射表生成失败"); + } + + } + + processdialog->close(); + + } diff --git a/GF3ProcessToolbox/QRDOrthProcessClass.ui b/GF3ProcessToolbox/QRDOrthProcessClass.ui index 8d0fefe..37d9b02 100644 --- a/GF3ProcessToolbox/QRDOrthProcessClass.ui +++ b/GF3ProcessToolbox/QRDOrthProcessClass.ui @@ -11,7 +11,7 @@ - 姝e皠浠g爜 + 鐢熸垚姝e皠鏌ユ壘琛 @@ -107,13 +107,22 @@ - + 0 30 + + 100000000000000000.000000000000000 + + + 1.000000000000000 + + + 10.000000000000000 + @@ -130,15 +139,37 @@ - + 0 30 + + 100000000000000000.000000000000000 + + + 1.000000000000000 + + + 10.000000000000000 + + + + + Qt::Horizontal + + + + 40 + 20 + + + + diff --git a/QSimulationRTPCGUI.ui b/QSimulationRTPCGUI.ui index fbc491d..25bbeb3 100644 --- a/QSimulationRTPCGUI.ui +++ b/QSimulationRTPCGUI.ui @@ -7,7 +7,7 @@ 0 0 600 - 400 + 394 diff --git a/QToolProcessBarDialog.cpp b/QToolProcessBarDialog.cpp deleted file mode 100644 index c75f6c2..0000000 --- a/QToolProcessBarDialog.cpp +++ /dev/null @@ -1,24 +0,0 @@ -#include "QToolProcessBarDialog.h" - -QToolProcessBarDialog::QToolProcessBarDialog(QWidget *parent) - : QDialog(parent) -{ - ui.setupUi(this); - ui.progressBar->setRange(0, 100); - -} - -QToolProcessBarDialog::~QToolProcessBarDialog() -{} - -void QToolProcessBarDialog::showProcess(double precent, QString tip) -{ - ui.progressBar->setValue(std::ceil(precent * 100)); - ui.labelTip->setText(tip); - this->update(); -} - -void QToolProcessBarDialog::showToolInfo(QString tip) -{ - ui.textEditTip->append("\n"+tip); -} diff --git a/QToolProcessBarDialog.h b/QToolProcessBarDialog.h deleted file mode 100644 index 11e33a1..0000000 --- a/QToolProcessBarDialog.h +++ /dev/null @@ -1,19 +0,0 @@ -#pragma once - -#include -#include "ui_QToolProcessBarDialog.h" -#include "ImageOperatorBase.h" -class QToolProcessBarDialog : public QDialog, public ShowProessAbstract -{ - Q_OBJECT -public: - QToolProcessBarDialog(QWidget *parent = nullptr); - ~QToolProcessBarDialog(); - -private: - Ui::QToolProcessBarDialogClass ui; - -public: - virtual void showProcess(double precent, QString tip) override; - virtual void showToolInfo(QString tip) override; -}; diff --git a/QToolProcessBarDialog.ui b/QToolProcessBarDialog.ui deleted file mode 100644 index 400efab..0000000 --- a/QToolProcessBarDialog.ui +++ /dev/null @@ -1,73 +0,0 @@ - - - QToolProcessBarDialogClass - - - - 0 - 0 - 600 - 400 - - - - QToolProcessBarDialog - - - - - - - - - - 120 - 26 - - - - - 120 - 26 - - - - 閫鍑 - - - - - - - 鎻愮ず - - - - - - - 24 - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/RasterProcessTool.cpp b/RasterProcessTool.cpp index b159f5c..64dcb30 100644 --- a/RasterProcessTool.cpp +++ b/RasterProcessTool.cpp @@ -1,6 +1,11 @@ #include "RasterProcessTool.h" #include #include "QMergeRasterProcessDialog.h" +#include "QImportGF3StripL1ADataset.h" +#include "QComplex2AmpPhase.h" +#include "QRDOrthProcessClass.h" +#include "QOrthSlrRaster.h" + RasterProcessTool::RasterProcessTool(QWidget *parent) : QMainWindow(parent) @@ -8,13 +13,40 @@ RasterProcessTool::RasterProcessTool(QWidget *parent) ui.setupUi(this); QObject::connect(this->ui.actionmergeRaster, SIGNAL(triggered()), this, SLOT(onactionmergeRasterTriggered())); - + QObject::connect(this->ui.actionImportGF3Strip, SIGNAL(triggered()), this, SLOT(onactionImportGF3StripTriggered())); + QObject::connect(this->ui.actioncomplex2amporphase, SIGNAL(triggered()), this, SLOT(onactioncomplex2amporphaseTriggered())); + QObject::connect(this->ui.actionlooktableCreate, SIGNAL(triggered()), this, SLOT(onactionlooktableCreateTriggered())); + QObject::connect(this->ui.actionorthinterpRaster, SIGNAL(triggered()), this, SLOT(onactionorthinterpRasterTriggered())); } RasterProcessTool::~RasterProcessTool() {} +void RasterProcessTool::onactionImportGF3StripTriggered() +{ + QImportGF3StripL1ADataset* dialog = new QImportGF3StripL1ADataset(this); + dialog->show(); +} + +void RasterProcessTool::onactioncomplex2amporphaseTriggered() +{ + QComplex2AmpPhase* dialog = new QComplex2AmpPhase(this); + dialog->show(); +} + +void RasterProcessTool::onactionlooktableCreateTriggered() +{ + QRDOrthProcessClass* dialog = new QRDOrthProcessClass(this); + dialog->show(); +} + +void RasterProcessTool::onactionorthinterpRasterTriggered() +{ + QOrthSlrRaster* dialog = new QOrthSlrRaster(this); + dialog->show(); +} + void RasterProcessTool::onactionmergeRasterTriggered() diff --git a/RasterProcessTool.h b/RasterProcessTool.h index ae83e6a..2a08c8c 100644 --- a/RasterProcessTool.h +++ b/RasterProcessTool.h @@ -13,9 +13,11 @@ public: public slots: - void onactionmergeRasterTriggered(); - + void onactionImportGF3StripTriggered(); + void onactioncomplex2amporphaseTriggered(); + void onactionlooktableCreateTriggered(); + void onactionorthinterpRasterTriggered(); private: Ui::RasterProcessToolClass ui; }; diff --git a/RasterProcessTool.ui b/RasterProcessTool.ui index 64639cd..f958b24 100644 --- a/RasterProcessTool.ui +++ b/RasterProcessTool.ui @@ -20,7 +20,7 @@ 0 0 761 - 22 + 23 @@ -29,7 +29,17 @@ + + + GF3ToolBox + + + + + + + @@ -45,6 +55,26 @@ mergeRaster + + + ImportGF3Strip + + + + + complex2amporphase + + + + + looktableCreate + + + + + orthinterpRaster + + diff --git a/RasterProcessTool.vcxproj b/RasterProcessTool.vcxproj index 5526e66..ad7f87a 100644 --- a/RasterProcessTool.vcxproj +++ b/RasterProcessTool.vcxproj @@ -108,6 +108,8 @@ + + @@ -116,14 +118,15 @@ + + - @@ -149,7 +152,6 @@ - @@ -160,6 +162,8 @@ + + @@ -180,7 +184,6 @@ - diff --git a/RasterProcessTool.vcxproj.filters b/RasterProcessTool.vcxproj.filters index b6f04f5..88b011d 100644 --- a/RasterProcessTool.vcxproj.filters +++ b/RasterProcessTool.vcxproj.filters @@ -82,9 +82,6 @@ Source Files - - Source Files - Imageshow @@ -136,6 +133,12 @@ Source Files + + GF3ProcessToolbox + + + Source Files + @@ -203,9 +206,6 @@ Header Files - - Header Files - Imageshow @@ -224,14 +224,17 @@ Header Files + + GF3ProcessToolbox + + + Header Files + Form Files - - Form Files - Imageshow @@ -250,5 +253,11 @@ Form Files + + GF3ProcessToolbox + + + Form Files + \ No newline at end of file