119 lines
3.7 KiB
C++
119 lines
3.7 KiB
C++
#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"没有选择任何文件。"));
|
||
}
|
||
}
|