#include "QRDOrthProcessClass.h" #include #include #include "QToolProcessBarDialog.h" #include 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 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 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"没有选择任何文件。")); } }