RasterProcessTool/LAMPSARProcessProgram/ToolBox/BaseToolbox/QClipRasterByRowCols.cpp

111 lines
3.1 KiB
C++
Raw Normal View History

#include "QClipRasterByRowCols.h"
#include <QFileDialog>
#include <QMessageBox>
#include "ImageOperatorBase.h"
QClipRasterByRowCols::QClipRasterByRowCols(QWidget *parent)
: QDialog(parent)
{
ui.setupUi(this);
connect(this->ui.accepBtn, SIGNAL(accepted()), this, SLOT(accepBtnaccept()));
connect(this->ui.accepBtn, SIGNAL(rejected()), this, SLOT(accepBtnreject()));
connect(this->ui.InRasterBtn, SIGNAL(clicked(bool)), this, SLOT(onInRasterBtnClicked(bool)));
connect(this->ui.OutRasterBtn, SIGNAL(clicked(bool)), this, SLOT(onOutRasterBtnClicked(bool)));
}
QClipRasterByRowCols::~QClipRasterByRowCols()
{
}
void QClipRasterByRowCols::accepBtnaccept()
{
QString inRasterPath = this->ui.lineEdit_InRaster->text();
QString outRasterPath = this->ui.lineEdit_OutRaster->text();
long minRow = this->ui.lineEdit_topRow->value();
long maxRow = this->ui.lineEdit_bottomRow->value();
long minCol = this->ui.lineEdit_LeftCol->value();
long maxCol = this->ui.lineEdit_RightCol->value();
if (maxCol < minCol || maxRow < minRow) {
QMessageBox::warning(nullptr, u8"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>", u8"<EFBFBD>ü<EFBFBD><EFBFBD><EFBFBD><EFBFBD>з<EFBFBD>Χ<EFBFBD><EFBFBD>д<EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
return;
}
else {}
// ͼ<><CDBC><EFBFBD>ü<EFBFBD>
this->ui.progressBar->setValue(10);
clipRaster(inRasterPath, outRasterPath, minRow, maxRow, minCol, maxCol);
this->ui.progressBar->setValue(100);
QMessageBox::information(nullptr, u8"<EFBFBD><EFBFBD>Ϣ", u8"Ӱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
this->ui.progressBar->setValue(0);
}
void QClipRasterByRowCols::accepBtnreject()
{
this->close();
}
void QClipRasterByRowCols::onInRasterBtnClicked(bool)
{
QString fileName = QFileDialog::getOpenFileName(
this, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
tr(u8"ѡ<EFBFBD><EFBFBD>xml<EFBFBD>ļ<EFBFBD>"), // <20><><EFBFBD><EFBFBD>
QString(), // Ĭ<><C4AC>·<EFBFBD><C2B7>
tr(u8"tiff Files (*.tiff);;tif Files (*.tif);;dat Files (*.dat);;bin Files (*.bin);;All Files (*)") // <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
);
// <20><><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>
if (!fileName.isEmpty()) {
QString message = "ѡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD>У<EFBFBD>\n";
this->ui.lineEdit_InRaster->setText(fileName);
}
else {
QMessageBox::information(this, tr(u8"û<EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>"), tr(u8"û<EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD>κ<EFBFBD><EFBFBD>ļ<EFBFBD>"));
}
if (!fileName.isEmpty()) {
gdalImage inRaster(this->ui.lineEdit_InRaster->text());
this->ui.lineEdit_topRow->setMinimum(0);
this->ui.lineEdit_bottomRow->setMinimum(0);
this->ui.lineEdit_LeftCol->setMinimum(0);
this->ui.lineEdit_RightCol->setMinimum(0);
this->ui.lineEdit_topRow->setMaximum(inRaster.height);
this->ui.lineEdit_bottomRow->setMaximum(inRaster.height);
this->ui.lineEdit_LeftCol->setMaximum(inRaster.width);
this->ui.lineEdit_RightCol->setMaximum(inRaster.width);
}
}
void QClipRasterByRowCols::onOutRasterBtnClicked(bool)
{
QString fileName = QFileDialog::getSaveFileName(
this, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
tr(u8"ѡ<EFBFBD><EFBFBD>xml<EFBFBD>ļ<EFBFBD>"), // <20><><EFBFBD><EFBFBD>
QString(), // Ĭ<><C4AC>·<EFBFBD><C2B7>
tr(u8"dat Files (*.dat);;bin Files (*.bin);;All Files (*)") // <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
);
// <20><><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>
if (!fileName.isEmpty()) {
QString message = "ѡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD>У<EFBFBD>\n";
this->ui.lineEdit_OutRaster->setText(fileName);
}
else {
QMessageBox::information(this, tr(u8"û<EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>"), tr(u8"û<EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD>κ<EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD>"));
}
}