RasterProcessTool/LAMPSARProcessProgram/ToolBox/BaseToolbox/QRDOrthProcessClass.cpp

119 lines
3.7 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

#include "QRDOrthProcessClass.h"
#include <QtWidgets>
#include <QFileDialog>
#include "QToolProcessBarDialog.h"
#include <GF3CalibrationAndGeocodingClass.h>
QRDOrthProcessClass::QRDOrthProcessClass(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)));
QObject::connect(ui.buttonBox, SIGNAL(rejected()), this, SLOT(reject()));
// QDialogButtonBox* buttonBox;
//QLineEdit* lineEditDEM;
//QLineEdit* lineEditWorkDir;
}
QRDOrthProcessClass::~QRDOrthProcessClass()
{}
void QRDOrthProcessClass::accept()
{
QToolProcessBarDialog* processdialog = new QToolProcessBarDialog(this);
processdialog->show();
processdialog->showProcess(0.0, u8"查找表生成");
QVector<QString> 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();
}
void QRDOrthProcessClass::reject()
{
this->close();
}
void QRDOrthProcessClass::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 QRDOrthProcessClass::onpushButtonRemoveClicked(bool)
{
QList<QListWidgetItem*> selectedItems = this->ui.listWidgetMetaxml->selectedItems();
for (QListWidgetItem* item : selectedItems) {
delete this->ui.listWidgetMetaxml->takeItem(this->ui.listWidgetMetaxml->row(item));
}
}
void QRDOrthProcessClass::onpushButtonWorkSpaceClicked(bool)
{
QString fileName = QFileDialog::getExistingDirectory(this, u8"选择工作空间路径", "");
if (!fileName.isEmpty()) {
this->ui.lineEditWorkDir->setText(fileName);
}
else {
QMessageBox::information(this, u8"没有选择文件夹", u8"没有选择任何文件夹");
}
}
void QRDOrthProcessClass::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"没有选择任何文件。"));
}
}