添加项目文件。
This commit is contained in:
		
							
								
								
									
										22
									
								
								LandslideTrain.sln
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								LandslideTrain.sln
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,22 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
 | 
					Microsoft Visual Studio Solution File, Format Version 12.00
 | 
				
			||||||
 | 
					# Visual Studio Version 16
 | 
				
			||||||
 | 
					VisualStudioVersion = 16.0.32630.194
 | 
				
			||||||
 | 
					MinimumVisualStudioVersion = 10.0.40219.1
 | 
				
			||||||
 | 
					Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "LandslideTrain", "LandslideTrain\LandslideTrain.vcxproj", "{1D23BAC7-1D1A-48BE-9796-93F34E435A5A}"
 | 
				
			||||||
 | 
					EndProject
 | 
				
			||||||
 | 
					Global
 | 
				
			||||||
 | 
						GlobalSection(SolutionConfigurationPlatforms) = preSolution
 | 
				
			||||||
 | 
							Release|x64 = Release|x64
 | 
				
			||||||
 | 
						EndGlobalSection
 | 
				
			||||||
 | 
						GlobalSection(ProjectConfigurationPlatforms) = postSolution
 | 
				
			||||||
 | 
							{1D23BAC7-1D1A-48BE-9796-93F34E435A5A}.Release|x64.ActiveCfg = Release|x64
 | 
				
			||||||
 | 
							{1D23BAC7-1D1A-48BE-9796-93F34E435A5A}.Release|x64.Build.0 = Release|x64
 | 
				
			||||||
 | 
						EndGlobalSection
 | 
				
			||||||
 | 
						GlobalSection(SolutionProperties) = preSolution
 | 
				
			||||||
 | 
							HideSolutionNode = FALSE
 | 
				
			||||||
 | 
						EndGlobalSection
 | 
				
			||||||
 | 
						GlobalSection(ExtensibilityGlobals) = postSolution
 | 
				
			||||||
 | 
							SolutionGuid = {9DAFCFF4-8408-40F6-A160-95047A99BB28}
 | 
				
			||||||
 | 
						EndGlobalSection
 | 
				
			||||||
 | 
					EndGlobal
 | 
				
			||||||
							
								
								
									
										51
									
								
								LandslideTrain/CProgressBar.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										51
									
								
								LandslideTrain/CProgressBar.cpp
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,51 @@
 | 
				
			|||||||
 | 
					#include "CProgressBar.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CProgressBar::CProgressBar(QWidget* parent) : QProgressBar(parent)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						//this->setStyleSheet(
 | 
				
			||||||
 | 
						//	"QProgressBar {color:black;font-size:12px;font-weight:normal;font-family:'Microsoft YaHei'; text-align:center; }"
 | 
				
			||||||
 | 
						//	"QProgressBar::chunk {background-color: rgb(0, 160, 244);}");
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void CProgressBar::ShowTips(const QString& strTips)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						if (this->isHidden())
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							this->show();
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						this->resetFormat();
 | 
				
			||||||
 | 
						this->setRange(0, 100);
 | 
				
			||||||
 | 
						this->setFormat(strTips);
 | 
				
			||||||
 | 
						this->setValue(100);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					double CProgressBar::GetDoubleFormatValue()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						double dValue = 0.0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						QString strFormat = this->format();
 | 
				
			||||||
 | 
						if (!strFormat.isEmpty())
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							int nIndex = strFormat.indexOf(":");
 | 
				
			||||||
 | 
							if (nIndex != -1)
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								QString strFormatData = strFormat.mid(nIndex + 1, strFormat.length() - nIndex - 2);
 | 
				
			||||||
 | 
								dValue = strFormatData.toDouble();
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						return dValue;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void CProgressBar::SetDoubleFormatValue(const QString& strFormat, double dValue)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						if (this->isHidden())
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							this->show();
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						this->setFormat(strFormat + ":" + QString::number(dValue, 'f', 2) + "%");
 | 
				
			||||||
 | 
						this->setValue(dValue);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										18
									
								
								LandslideTrain/CProgressBar.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								LandslideTrain/CProgressBar.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,18 @@
 | 
				
			|||||||
 | 
					#pragma once
 | 
				
			||||||
 | 
					#include<QProgressBar>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class CProgressBar : public QProgressBar
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						Q_OBJECT
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					public:
 | 
				
			||||||
 | 
						CProgressBar(QWidget* parent = 0);
 | 
				
			||||||
 | 
						~CProgressBar() {}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					public:
 | 
				
			||||||
 | 
						void ShowTips(const QString& strTips);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						void SetDoubleFormatValue(const QString& strFormat, double dValue);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						double GetDoubleFormatValue();
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
							
								
								
									
										455
									
								
								LandslideTrain/LandslideTrain.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										455
									
								
								LandslideTrain/LandslideTrain.cpp
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,455 @@
 | 
				
			|||||||
 | 
					#include "LandslideTrain.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <QSettings>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					LandslideTrain::LandslideTrain()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						//ui.setupUi(this);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					QString LandslideTrain::PannelName()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						return QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><EFBFBD>");
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					QString LandslideTrain::CategoryName()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						return QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><EFBFBD>");
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					QString LandslideTrain::EnglishName()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						return QString::fromLocal8Bit("LandslideTrain");
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					QString LandslideTrain::ChineseName()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						return QString::fromLocal8Bit("ģ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					QString LandslideTrain::Information()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						return QString::fromLocal8Bit("ģ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					QString LandslideTrain::IconPath()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						return ":/LandslideTrain/resources/dem_vec.svg";
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					QWidget* LandslideTrain::CenterWidget()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						//QString gdal_path = qApp->applicationDirPath().toLocal8Bit() + "/share/gdal";
 | 
				
			||||||
 | 
						//QString pro_lib_path = qApp->applicationDirPath().toLocal8Bit() + "/share/proj";
 | 
				
			||||||
 | 
						//qputenv("GDAL_DATA", gdal_path.toLocal8Bit());
 | 
				
			||||||
 | 
						//qputenv("PROJ_LIB", pro_lib_path.toLocal8Bit());
 | 
				
			||||||
 | 
						bool showWin = false;
 | 
				
			||||||
 | 
						if (myWidget == nullptr)
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							myWidget = new QDialog();
 | 
				
			||||||
 | 
							showWin = true;
 | 
				
			||||||
 | 
							qDebug() << "new QDialog()";
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						else
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							qDebug() << "already have myWidget";
 | 
				
			||||||
 | 
							//<2F><><EFBFBD><EFBFBD>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | 
				
			||||||
 | 
							myWidget->activateWindow();
 | 
				
			||||||
 | 
							myWidget->raise();
 | 
				
			||||||
 | 
							return myWidget;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						ui.setupUi(myWidget);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						myWidget->setWindowTitle(QString::fromLocal8Bit("ģ<EFBFBD><EFBFBD>ѵ<EFBFBD><EFBFBD>"));
 | 
				
			||||||
 | 
						myWidget->setWindowFlags(Qt::CustomizeWindowHint | Qt::WindowCloseButtonHint);
 | 
				
			||||||
 | 
						myWidget->setWindowIcon(QIcon(":/LandslideTrain/resources/dem_vec.svg"));
 | 
				
			||||||
 | 
						myWidget->setAttribute(Qt::WA_QuitOnClose, false);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						myWidget->setAttribute(Qt::WA_DeleteOnClose);
 | 
				
			||||||
 | 
						connect(myWidget, &QDialog::destroyed, this, [=] {
 | 
				
			||||||
 | 
							qDebug() << "----Landslide train window close----";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							QDir pluginsDir = QDir(qApp->applicationDirPath());
 | 
				
			||||||
 | 
							if (pluginsDir.cd("srsplugins\\SldModel"))
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								QString strConfigPath = pluginsDir.absoluteFilePath("sld_config.ini");
 | 
				
			||||||
 | 
								QFile f(strConfigPath);
 | 
				
			||||||
 | 
								if (f.exists())
 | 
				
			||||||
 | 
								{
 | 
				
			||||||
 | 
									WriteConfigPaths(strConfigPath);
 | 
				
			||||||
 | 
									f.close();
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							if (mWorkThread != nullptr)
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								mWorkThread->requestInterruption();
 | 
				
			||||||
 | 
								mWorkThread->quit();
 | 
				
			||||||
 | 
								mWorkThread->wait();//<2F><><EFBFBD><EFBFBD>wait<69><74><EFBFBD>ȵ<EFBFBD><C8B5><EFBFBD>finished<65>źŶ<C5BA>Ӧ<EFBFBD>IJۺ<C4B2><DBBA><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD><D6B4><EFBFBD><EFBFBD><EFBFBD>ɺ<EFBFBD><C9BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | 
				
			||||||
 | 
								mWorkObject->on_cancel();
 | 
				
			||||||
 | 
								mWorkThread = nullptr;//mWorkThread, &QThread::finished, mWorkThread, &QObject::deleteLater<65><72><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫdelete
 | 
				
			||||||
 | 
								mWorkObject = nullptr;//mWorkThread, &QThread::finished, mWorker, &QObject::deleteLater
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							myWidget->close();
 | 
				
			||||||
 | 
							myWidget = nullptr;
 | 
				
			||||||
 | 
							});
 | 
				
			||||||
 | 
						connect(ui.pbtInModel, &QPushButton::clicked, this, &LandslideTrain::chooseInModel);
 | 
				
			||||||
 | 
						connect(ui.pbtInDataset, &QPushButton::clicked, this, &LandslideTrain::chooseInDataset);
 | 
				
			||||||
 | 
						connect(ui.pbtInLabel, &QPushButton::clicked, this, &LandslideTrain::chooseInLabel);
 | 
				
			||||||
 | 
						connect(ui.pbtOutResult, &QPushButton::clicked, this, &LandslideTrain::chooseResultPath);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						connect(ui.pushButton_ok, &QPushButton::clicked, this, &LandslideTrain::readAndStart);
 | 
				
			||||||
 | 
						connect(ui.pushButton_cancel, &QPushButton::clicked, this, &LandslideTrain::pbCancel);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						ui.lineEpoch1->setValidator(new QIntValidator(0, 999, this));
 | 
				
			||||||
 | 
						ui.lineEpoch2->setValidator(new QIntValidator(0, 999, this));
 | 
				
			||||||
 | 
						ui.lineEpoch1->setText("100");
 | 
				
			||||||
 | 
						ui.lineEpoch2->setText("100");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						ui.pbtInModel->setFocus();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						connect(ui.checkBoxGenData, &QCheckBox::clicked, this, [=](bool checked) {
 | 
				
			||||||
 | 
							executeGenData = checked;
 | 
				
			||||||
 | 
							if (!executeGenData && !executeTrain)
 | 
				
			||||||
 | 
								ui.pushButton_ok->setEnabled(false);
 | 
				
			||||||
 | 
							else
 | 
				
			||||||
 | 
								ui.pushButton_ok->setEnabled(true);
 | 
				
			||||||
 | 
							});
 | 
				
			||||||
 | 
						connect(ui.checkBoxTrain, &QCheckBox::clicked, this, [=](bool checked) {
 | 
				
			||||||
 | 
							executeTrain = checked;
 | 
				
			||||||
 | 
							if (!executeGenData && !executeTrain)
 | 
				
			||||||
 | 
								ui.pushButton_ok->setEnabled(false);
 | 
				
			||||||
 | 
							else
 | 
				
			||||||
 | 
								ui.pushButton_ok->setEnabled(true);
 | 
				
			||||||
 | 
							});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						ui.progressBar->setTextVisible(true);
 | 
				
			||||||
 | 
						ui.progressBar->setRange(0, 100);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						QFile qssFile(":/LandslideTrain/LandslideTrain.qss");
 | 
				
			||||||
 | 
						qssFile.open(QFile::ReadOnly); //<2F><>ֻ<EFBFBD><D6BB><EFBFBD><EFBFBD>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD>
 | 
				
			||||||
 | 
						if (qssFile.isOpen())
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							QString qss = QLatin1String(qssFile.readAll());
 | 
				
			||||||
 | 
							myWidget->setStyleSheet(qss);
 | 
				
			||||||
 | 
							qssFile.close();
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						else
 | 
				
			||||||
 | 
							qDebug() << "-- no qssFile";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						QDir pluginsDir = QDir(qApp->applicationDirPath());
 | 
				
			||||||
 | 
						if (pluginsDir.cd("srsplugins\\SldModel"))
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							QString strConfigPath = pluginsDir.absoluteFilePath("sld_config.ini");
 | 
				
			||||||
 | 
							QFile f(strConfigPath);
 | 
				
			||||||
 | 
							if (f.exists())
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								ReadConfigHistoryPaths(strConfigPath);
 | 
				
			||||||
 | 
								f.close();
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if (showWin)
 | 
				
			||||||
 | 
							myWidget->show();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						return myWidget;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void LandslideTrain::startWorkThread()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						if (mWorkObject != nullptr)
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							return;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						mWorkThread = new QThread();
 | 
				
			||||||
 | 
						mWorkObject = new WorkObject();
 | 
				
			||||||
 | 
						mWorkObject->moveToThread(mWorkThread);
 | 
				
			||||||
 | 
						connect(mWorkThread, &QThread::finished, mWorkThread, &QObject::deleteLater);
 | 
				
			||||||
 | 
						connect(mWorkThread, &QThread::finished, mWorkObject, &QObject::deleteLater);
 | 
				
			||||||
 | 
						connect(mWorkObject, &WorkObject::progress, myWidget, [=](double val) {ui.progressBar->SetDoubleFormatValue(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>"), val); });
 | 
				
			||||||
 | 
						connect(mWorkObject, &WorkObject::trainFinished, this, &LandslideTrain::finished);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						connect(this, &LandslideTrain::start, mWorkObject, &WorkObject::runTrainWork);
 | 
				
			||||||
 | 
						mWorkThread->start();
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void LandslideTrain::ReadConfigHistoryPaths(QString strPath)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						QSettings configIni(strPath, QSettings::IniFormat);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						//<2F><EFBFBD><F2BFAAB1><EFBFBD>Ϊ<EFBFBD><CEAA>[SldTrain] <20><><EFBFBD>飬<EFBFBD><E9A3AC><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1>port<72>ֶε<D6B6>ֵ
 | 
				
			||||||
 | 
						configIni.beginGroup("SldTrain");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						ui.lineInModel->setText(configIni.value("RetrainModel").toString());
 | 
				
			||||||
 | 
						ui.lineInDataset->setText(configIni.value("SrcDom").toString());
 | 
				
			||||||
 | 
						ui.lineInLabel->setText(configIni.value("SrcLabel").toString());
 | 
				
			||||||
 | 
						ui.lineOutResult->setText(configIni.value("TrainResult").toString());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						configIni.endGroup();//<2F>ر<EFBFBD><D8B1><EFBFBD>
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void LandslideTrain::WriteConfigPaths(QString strPath)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						QSettings configIni(strPath, QSettings::IniFormat);
 | 
				
			||||||
 | 
						configIni.setIniCodec("utf-8");
 | 
				
			||||||
 | 
						//<2F><EFBFBD><F2BFAAB1><EFBFBD>Ϊ<EFBFBD><CEAA>[SldTrain] <20><><EFBFBD><EFBFBD>
 | 
				
			||||||
 | 
						configIni.beginGroup("SldTrain");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3>·<EFBFBD><C2B7>
 | 
				
			||||||
 | 
						QString temp = ui.lineInModel->text();
 | 
				
			||||||
 | 
						if (temp != "")
 | 
				
			||||||
 | 
							configIni.setValue("RetrainModel", temp);
 | 
				
			||||||
 | 
						//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>DOM·<4D><C2B7>
 | 
				
			||||||
 | 
						temp = ui.lineInDataset->text();
 | 
				
			||||||
 | 
						if (temp != "")
 | 
				
			||||||
 | 
							configIni.setValue("SrcDom", temp);
 | 
				
			||||||
 | 
						//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Label·<6C><C2B7>
 | 
				
			||||||
 | 
						temp = ui.lineInLabel->text();
 | 
				
			||||||
 | 
						if (temp != "")
 | 
				
			||||||
 | 
							configIni.setValue("SrcLabel", temp);
 | 
				
			||||||
 | 
						//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><C2B7>
 | 
				
			||||||
 | 
						temp = ui.lineOutResult->text();
 | 
				
			||||||
 | 
						if (temp != "")
 | 
				
			||||||
 | 
							configIni.setValue("TrainResult", temp);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						configIni.endGroup();//<2F>ر<EFBFBD><D8B1><EFBFBD>
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void LandslideTrain::readAndStart()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						QString inDataset = ui.lineInDataset->text();
 | 
				
			||||||
 | 
						QString inLabel=ui.lineInLabel->text();
 | 
				
			||||||
 | 
						QString inModel=ui.lineInModel->text();
 | 
				
			||||||
 | 
						QString outResult=ui.lineOutResult->text();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if (inDataset == "" || inLabel == "" || inModel == "" || outResult == "")
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							QMessageBox mess(QMessageBox::NoIcon, QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>"), QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><EFBFBD>"));
 | 
				
			||||||
 | 
							mess.setWindowFlags(Qt::Drawer);
 | 
				
			||||||
 | 
							int result = mess.exec();
 | 
				
			||||||
 | 
							return;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						ui.progressBar->SetDoubleFormatValue(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>"), 0);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						QDir inDatasetDir(inDataset);
 | 
				
			||||||
 | 
						if (!inDatasetDir.exists())
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							QMessageBox mess(QMessageBox::NoIcon, QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>"), QString::fromLocal8Bit("ѵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD>в<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"));
 | 
				
			||||||
 | 
							mess.setWindowFlags(Qt::Drawer);
 | 
				
			||||||
 | 
							int result = mess.exec();
 | 
				
			||||||
 | 
							return;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						QDir inLabelDir(inLabel);
 | 
				
			||||||
 | 
						if (!inLabelDir.exists())
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							QMessageBox mess(QMessageBox::NoIcon, QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>"), QString::fromLocal8Bit("<EFBFBD><EFBFBD>ǩ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD>в<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"));
 | 
				
			||||||
 | 
							mess.setWindowFlags(Qt::Drawer);
 | 
				
			||||||
 | 
							int result = mess.exec();
 | 
				
			||||||
 | 
							return;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						QDir outModelDir(outResult);
 | 
				
			||||||
 | 
						if (!outModelDir.exists())
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							QMessageBox mess(QMessageBox::NoIcon, QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>"), QString::fromLocal8Bit("ģ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD>в<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"));
 | 
				
			||||||
 | 
							mess.setWindowFlags(Qt::Drawer);
 | 
				
			||||||
 | 
							int result = mess.exec();
 | 
				
			||||||
 | 
							return;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if (executeGenData && executeTrain)
 | 
				
			||||||
 | 
							qDebug() << "executeGenData & executeTrain";
 | 
				
			||||||
 | 
						if (executeGenData && (!executeTrain))
 | 
				
			||||||
 | 
							qDebug() << "executeGenData, not executeTrain";
 | 
				
			||||||
 | 
						if ((!executeGenData) && executeTrain)
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							//<2F>ж<EFBFBD>train<69>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѵ<EFBFBD><D1B5><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>
 | 
				
			||||||
 | 
							QDir dirImage(outResult + "/Images");
 | 
				
			||||||
 | 
							QDir dirLabel(outResult + "/Labels");
 | 
				
			||||||
 | 
							if (!dirImage.exists() || !dirLabel.exists())
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								QMessageBox mess(QMessageBox::NoIcon, QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>"),
 | 
				
			||||||
 | 
									QString::fromLocal8Bit("δ<EFBFBD>ҵ<EFBFBD>ѵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD>\nȷ<EFBFBD><EFBFBD>Images<EFBFBD><EFBFBD>Labels<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><EFBFBD><EFBFBD><EFBFBD>:      \n") + outResult);
 | 
				
			||||||
 | 
								mess.setWindowFlags(Qt::Drawer);
 | 
				
			||||||
 | 
								int result = mess.exec();
 | 
				
			||||||
 | 
								return;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							//<2F>ж<EFBFBD><D0B6>ļ<EFBFBD><C4BC>Ƿ<EFBFBD>ƥ<EFBFBD><C6A5>
 | 
				
			||||||
 | 
							QStringList imgList = getAllFiles(outResult + "/Images", "tif");
 | 
				
			||||||
 | 
							QStringList labelList = getAllFiles(outResult + "/Labels", "tif");
 | 
				
			||||||
 | 
							if (imgList.size() == 0 || labelList.size() == 0)
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								QMessageBox mess(QMessageBox::NoIcon, QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>"),
 | 
				
			||||||
 | 
									QString::fromLocal8Bit("ѵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD>"));
 | 
				
			||||||
 | 
								mess.setWindowFlags(Qt::Drawer);
 | 
				
			||||||
 | 
								int result = mess.exec();
 | 
				
			||||||
 | 
								return;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							if (imgList.size() != labelList.size())
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								QMessageBox mess(QMessageBox::NoIcon, QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>"),
 | 
				
			||||||
 | 
									QString::fromLocal8Bit("ѵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Images<EFBFBD><EFBFBD>Labels<EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD>ƥ<EFBFBD><EFBFBD>"));
 | 
				
			||||||
 | 
								mess.setWindowFlags(Qt::Drawer);
 | 
				
			||||||
 | 
								int result = mess.exec();
 | 
				
			||||||
 | 
								return;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if (ui.lineEpoch1->text() == "" || ui.lineEpoch2->text() == "")
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							QMessageBox mess(QMessageBox::NoIcon, QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>"), QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȷ<EFBFBD><EFBFBD>ѵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"));
 | 
				
			||||||
 | 
							mess.setWindowFlags(Qt::Drawer);
 | 
				
			||||||
 | 
							int result = mess.exec();
 | 
				
			||||||
 | 
							return;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						QString epoch1 = ui.lineEpoch1->text();
 | 
				
			||||||
 | 
						QString epoch2 = ui.lineEpoch2->text();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if (mWorkThread == nullptr)
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							qDebug() << "--startThread";
 | 
				
			||||||
 | 
							startWorkThread();
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						emit start(inModel, inDataset, inLabel, outResult, executeGenData, executeTrain, epoch1, epoch2);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					QStringList LandslideTrain::getAllFiles(QString path, QString fileType)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						QDir dir(path);
 | 
				
			||||||
 | 
						if (!dir.exists())
 | 
				
			||||||
 | 
							return QStringList();
 | 
				
			||||||
 | 
						dir.setFilter(QDir::Files | QDir::NoSymLinks);
 | 
				
			||||||
 | 
						QFileInfoList list = dir.entryInfoList();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						int file_count = list.count();
 | 
				
			||||||
 | 
						if (file_count <= 0)
 | 
				
			||||||
 | 
							return QStringList();
 | 
				
			||||||
 | 
						QStringList files;
 | 
				
			||||||
 | 
						for (int i = 0; i < file_count; i++)
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							QFileInfo file_info = list.at(i);
 | 
				
			||||||
 | 
							QString suffix = file_info.suffix();
 | 
				
			||||||
 | 
							if (QString::compare(suffix, QString(fileType), Qt::CaseInsensitive) == 0)
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								QString absolute_file_path = file_info.absoluteFilePath();
 | 
				
			||||||
 | 
								files.append(absolute_file_path);
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						return files;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void LandslideTrain::finished()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						QMessageBox mess(QMessageBox::NoIcon,
 | 
				
			||||||
 | 
							QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD>н<EFBFBD><EFBFBD><EFBFBD>"),
 | 
				
			||||||
 | 
							QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><EFBFBD>\n") + ui.lineOutResult->text(),
 | 
				
			||||||
 | 
							QMessageBox::Ok, NULL);
 | 
				
			||||||
 | 
						mess.setWindowFlags(Qt::Drawer);
 | 
				
			||||||
 | 
						mess.setButtonText(QMessageBox::Ok, QString::fromLocal8Bit("ȷ<EFBFBD><EFBFBD>"));
 | 
				
			||||||
 | 
						int result = mess.exec();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						pbCancel();
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void LandslideTrain::pbCancel()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						//qDebug() << "--pbtCancel";
 | 
				
			||||||
 | 
						delete myWidget;//<2F><><EFBFBD><EFBFBD>&QDialog::destroyed
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void LandslideTrain::chooseInModel()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						QString dirModel = QFileDialog::getOpenFileName(ui.pbtInModel, QString::fromLocal8Bit("ѡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼѵ<EFBFBD><EFBFBD>ģ<EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>"), "", "*.pth");
 | 
				
			||||||
 | 
						if (dirModel != "")
 | 
				
			||||||
 | 
							ui.lineInModel->setText(dirModel);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void LandslideTrain::chooseInDataset()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						QString dirDataset = QFileDialog::getExistingDirectory(ui.pbtInDataset, QString::fromLocal8Bit("ѡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><EFBFBD>"), "");
 | 
				
			||||||
 | 
						if (dirDataset != "")
 | 
				
			||||||
 | 
							ui.lineInDataset->setText(dirDataset);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void LandslideTrain::chooseInLabel()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						QString dirLabel = QFileDialog::getExistingDirectory(ui.pbtInLabel, QString::fromLocal8Bit("ѡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǩ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><EFBFBD>"), "");
 | 
				
			||||||
 | 
						if (dirLabel != "")
 | 
				
			||||||
 | 
							ui.lineInLabel->setText(dirLabel);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void LandslideTrain::chooseResultPath()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						QString dirResult = QFileDialog::getExistingDirectory(ui.pbtOutResult, QString::fromLocal8Bit("ѡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>·<EFBFBD><EFBFBD>"), "");
 | 
				
			||||||
 | 
						if (dirResult != "")
 | 
				
			||||||
 | 
							ui.lineOutResult->setText(dirResult);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void WorkObject::runTrainWork(QString inModel, QString dataset, QString label, QString outModel, bool gen, bool train, QString epoch1, QString epoch2)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						QDir pluginsDir = QDir(qApp->applicationDirPath());
 | 
				
			||||||
 | 
						if (!pluginsDir.cd("models\\envs"))
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							qDebug() << "no folder models\\envs";
 | 
				
			||||||
 | 
							return;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						QString exeDirName = pluginsDir.absoluteFilePath("train_3c_landslide.exe");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						QString inDom = " --dom_path " + dataset + "/";
 | 
				
			||||||
 | 
						QString inLabel = " --label_path " + label + "/";
 | 
				
			||||||
 | 
						QString trainedModel = " --retrained_model " + inModel;
 | 
				
			||||||
 | 
						QString save_model = " --save_model " + outModel + "/";
 | 
				
			||||||
 | 
						QString strMid, strTrain;
 | 
				
			||||||
 | 
						if (gen)
 | 
				
			||||||
 | 
							strMid = " --exe_mid True ";
 | 
				
			||||||
 | 
						else
 | 
				
			||||||
 | 
							strMid = " --exe_mid False ";
 | 
				
			||||||
 | 
						if (train)
 | 
				
			||||||
 | 
							strTrain = " --exe_train True";
 | 
				
			||||||
 | 
						else
 | 
				
			||||||
 | 
							strTrain = " --exe_train False";
 | 
				
			||||||
 | 
						QString strEpoch1, strEpoch2;
 | 
				
			||||||
 | 
						strEpoch1 = " --epoch1 " + epoch1;
 | 
				
			||||||
 | 
						strEpoch2 = " --epoch2 " + epoch2;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						QString ss = exeDirName + inDom + inLabel + trainedModel + save_model + strMid + strTrain + strEpoch1 + strEpoch2;
 | 
				
			||||||
 | 
						qDebug() << ss;
 | 
				
			||||||
 | 
						QProcess* pProces = new QProcess(this);
 | 
				
			||||||
 | 
						connect(pProces, SIGNAL(readyReadStandardOutput()), this, SLOT(on_read()));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						pProces->start(ss);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void WorkObject::on_read()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						mProcess = (QProcess*)sender();
 | 
				
			||||||
 | 
						QString output = QString::fromLocal8Bit(mProcess->readAllStandardOutput());
 | 
				
			||||||
 | 
						if (output.toDouble() > 0)
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							qDebug() << "exe out:" << output.toDouble();
 | 
				
			||||||
 | 
							emit progress(output.toDouble());
 | 
				
			||||||
 | 
							if (output.toDouble() == 100.0)
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								delete mProcess;
 | 
				
			||||||
 | 
								mProcess = nullptr;
 | 
				
			||||||
 | 
								emit trainFinished();
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						else
 | 
				
			||||||
 | 
							qDebug() << "Unresolved exe out:" << output;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void WorkObject::on_cancel()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						if (mProcess == nullptr)
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							qDebug() << "--mProcess null";
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						else
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							QString KillStr = "taskkill /f /im train_3c_landslide.exe";
 | 
				
			||||||
 | 
							mProcess->startDetached(KillStr);
 | 
				
			||||||
 | 
							qDebug() << "--kill Process";
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										96
									
								
								LandslideTrain/LandslideTrain.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										96
									
								
								LandslideTrain/LandslideTrain.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,96 @@
 | 
				
			|||||||
 | 
					#pragma once
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <QtWidgets/QDialog>
 | 
				
			||||||
 | 
					#include "ui_LandslideTrain.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <QProcess>
 | 
				
			||||||
 | 
					#include <QThread>
 | 
				
			||||||
 | 
					#include <QFile>
 | 
				
			||||||
 | 
					#include <QIcon>
 | 
				
			||||||
 | 
					#include <QDebug>
 | 
				
			||||||
 | 
					#include <QMessageBox>
 | 
				
			||||||
 | 
					#include <QFileDialog>
 | 
				
			||||||
 | 
					#include <QStringList>
 | 
				
			||||||
 | 
					#include <QIntValidator>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "SrsMainPluginInterFace.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <string>
 | 
				
			||||||
 | 
					#include <iostream>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					using namespace std;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class WorkObject :public QObject
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						Q_OBJECT
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					public:
 | 
				
			||||||
 | 
						void on_cancel();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					public slots:
 | 
				
			||||||
 | 
						void runTrainWork(QString inModel, QString inDataset, QString label, QString outModel, bool gen, bool train, QString epoch1, QString epoch2);
 | 
				
			||||||
 | 
						void on_read();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					signals:
 | 
				
			||||||
 | 
						void progress(double value);
 | 
				
			||||||
 | 
						void trainFinished();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					private:
 | 
				
			||||||
 | 
						QProcess* mProcess = nullptr;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class LandslideTrain : public SrsMainInterface
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    Q_OBJECT
 | 
				
			||||||
 | 
							Q_INTERFACES(SrsMainInterface)
 | 
				
			||||||
 | 
							Q_PLUGIN_METADATA(IID MainInterface_iid)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					public:
 | 
				
			||||||
 | 
					    LandslideTrain();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						virtual QString PannelName() override;
 | 
				
			||||||
 | 
						virtual QString CategoryName() override;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						virtual QString EnglishName() override;
 | 
				
			||||||
 | 
						virtual QString ChineseName() override;
 | 
				
			||||||
 | 
						virtual QString Information() override;
 | 
				
			||||||
 | 
						virtual QString IconPath() override;
 | 
				
			||||||
 | 
						virtual QWidget* CenterWidget() override;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						void startWorkThread();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						QStringList getAllFiles(QString path, QString fileType);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						//<2F><>json<6F>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1>ʷ<EFBFBD>洢<EFBFBD><E6B4A2>·<EFBFBD><C2B7>
 | 
				
			||||||
 | 
						void ReadConfigHistoryPaths(QString strPath);
 | 
				
			||||||
 | 
						//<2F><><EFBFBD>汾<EFBFBD>δ<CEB4>·<EFBFBD><C2B7><EFBFBD><EFBFBD>json<6F>ļ<EFBFBD>
 | 
				
			||||||
 | 
						void WriteConfigPaths(QString strPath);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					public slots:
 | 
				
			||||||
 | 
						void readAndStart();
 | 
				
			||||||
 | 
						void pbCancel();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						void chooseInModel();
 | 
				
			||||||
 | 
						void chooseInDataset();
 | 
				
			||||||
 | 
						void chooseInLabel();
 | 
				
			||||||
 | 
						void chooseResultPath();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						void finished();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					signals:
 | 
				
			||||||
 | 
						void start(QString inModel, QString inDataset, QString label, QString outModel, bool gen, bool train, QString epoch1, QString epoch2);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					private:
 | 
				
			||||||
 | 
						Ui::LandslideTrainClass ui;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						QDialog* myWidget = nullptr;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						QThread* mWorkThread = nullptr;
 | 
				
			||||||
 | 
						WorkObject* mWorkObject = nullptr;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						bool executeGenData = true;
 | 
				
			||||||
 | 
						bool executeTrain = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
							
								
								
									
										6
									
								
								LandslideTrain/LandslideTrain.qrc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								LandslideTrain/LandslideTrain.qrc
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,6 @@
 | 
				
			|||||||
 | 
					<RCC>
 | 
				
			||||||
 | 
					    <qresource prefix="/LandslideTrain">
 | 
				
			||||||
 | 
					        <file>resources/dem_vec.svg</file>
 | 
				
			||||||
 | 
					        <file>LandslideTrain.qss</file>
 | 
				
			||||||
 | 
					    </qresource>
 | 
				
			||||||
 | 
					</RCC>
 | 
				
			||||||
							
								
								
									
										68
									
								
								LandslideTrain/LandslideTrain.qss
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										68
									
								
								LandslideTrain/LandslideTrain.qss
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,68 @@
 | 
				
			|||||||
 | 
					QProgressBar#progressBar {
 | 
				
			||||||
 | 
						border:0px solid white;
 | 
				
			||||||
 | 
						text-align:center;
 | 
				
			||||||
 | 
						color:black;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					QProgressBar#progressBar:chunk {
 | 
				
			||||||
 | 
						background-color:#3FABBA;
 | 
				
			||||||
 | 
						width:20px;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					QProgressBar#progressBar QLineEdit {
 | 
				
			||||||
 | 
						border:none;
 | 
				
			||||||
 | 
						color:black;
 | 
				
			||||||
 | 
						padding-left:5px;
 | 
				
			||||||
 | 
						font-size:16px;
 | 
				
			||||||
 | 
						background-color:transparent;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					QLabel{
 | 
				
			||||||
 | 
						color:black;
 | 
				
			||||||
 | 
						font-family:'Microsoft YaHei';
 | 
				
			||||||
 | 
						font-size:12px;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*----QPushButton<6F><6E>ʽ<EFBFBD><CABD>*/
 | 
				
			||||||
 | 
					#pushButton_ok, #pushButton_cancel, #pbtInModel, #pbtInDataset, #pbtInDsm, #pbtInLabel, #pbtOutResult{
 | 
				
			||||||
 | 
						font-family:'Microsoft YaHei';
 | 
				
			||||||
 | 
						font-size:12px;
 | 
				
			||||||
 | 
						background-color: #ffffff;
 | 
				
			||||||
 | 
						border: 1px solid #dcdfe6;
 | 
				
			||||||
 | 
						padding: 2px;
 | 
				
			||||||
 | 
						border-radius: 5px;
 | 
				
			||||||
 | 
						max-height:20px;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					#pushButton_ok, #pushButton_cancel{
 | 
				
			||||||
 | 
						min-width:36px;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					#pushButton_ok:hover, #pushButton_cancel:hover, #pbtInModel:hover, #pbtInDataset:hover, #pbtInLabel:hover,#pbtOutResult:hover{
 | 
				
			||||||
 | 
						background-color: #ecf5ff;
 | 
				
			||||||
 | 
						color: #409eff;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					#pushButton_ok:pressed, #pushButton_cancel:pressed, #pbtInModel:pressed, #pbtInDataset:pressed, #pbtInLabel:pressed,#pbtOutResult:pressed{
 | 
				
			||||||
 | 
						border: 1px solid #3a8ee6;
 | 
				
			||||||
 | 
						color: #409eff;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					#pushButton_ok:checked, #pushButton_cancel:checked, #pbtInModel:checked, #pbtInDataset:checked, #pbtInLabel:checked,#pbtOutResult:checked{
 | 
				
			||||||
 | 
						border: 1px solid #3a8ee6;
 | 
				
			||||||
 | 
						color: #409eff;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					#pushButton_ok:focus, #pushButton_cancel:focus, #pbtInModel:focus, #pbtInDataset:focus, #pbtInLabel:focus,#pbtOutResult:focus{
 | 
				
			||||||
 | 
						border: 1px solid #3a8ee6;
 | 
				
			||||||
 | 
						color: #409eff;
 | 
				
			||||||
 | 
						outline: none;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*----QLineEdit<69><74>ʽ*/
 | 
				
			||||||
 | 
					#lineInModel, #lineInDataset, #lineOutResult, #lineInLabel, #lineEpoch1, #lineEpoch2{
 | 
				
			||||||
 | 
						border:0px;
 | 
				
			||||||
 | 
						border-bottom: 1px solid #B3B3B3;
 | 
				
			||||||
 | 
						font-family:'Microsoft YaHei';
 | 
				
			||||||
 | 
						font-size:12px;
 | 
				
			||||||
 | 
						background-color:transparent;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					#lineInModel:hover, #lineInDataset:hover, #lineOutResult:hover, #lineInLabel:hover, #lineEpoch1:hover, #lineEpoch2:hover{
 | 
				
			||||||
 | 
						border-bottom: 2px solid #66A3FF;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					#lineInModel:focus, #lineInDataset:focus, #lineOutResult:focus, #lineInLabel:focus, #lineEpoch1:focus, #lineEpoch2:focus{
 | 
				
			||||||
 | 
						border-bottom: 2px solid #7666FF;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										324
									
								
								LandslideTrain/LandslideTrain.ui
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										324
									
								
								LandslideTrain/LandslideTrain.ui
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,324 @@
 | 
				
			|||||||
 | 
					<?xml version="1.0" encoding="UTF-8"?>
 | 
				
			||||||
 | 
					<ui version="4.0">
 | 
				
			||||||
 | 
					 <class>LandslideTrainClass</class>
 | 
				
			||||||
 | 
					 <widget class="QDialog" name="LandslideTrainClass">
 | 
				
			||||||
 | 
					  <property name="geometry">
 | 
				
			||||||
 | 
					   <rect>
 | 
				
			||||||
 | 
					    <x>0</x>
 | 
				
			||||||
 | 
					    <y>0</y>
 | 
				
			||||||
 | 
					    <width>500</width>
 | 
				
			||||||
 | 
					    <height>300</height>
 | 
				
			||||||
 | 
					   </rect>
 | 
				
			||||||
 | 
					  </property>
 | 
				
			||||||
 | 
					  <property name="minimumSize">
 | 
				
			||||||
 | 
					   <size>
 | 
				
			||||||
 | 
					    <width>500</width>
 | 
				
			||||||
 | 
					    <height>300</height>
 | 
				
			||||||
 | 
					   </size>
 | 
				
			||||||
 | 
					  </property>
 | 
				
			||||||
 | 
					  <property name="maximumSize">
 | 
				
			||||||
 | 
					   <size>
 | 
				
			||||||
 | 
					    <width>500</width>
 | 
				
			||||||
 | 
					    <height>300</height>
 | 
				
			||||||
 | 
					   </size>
 | 
				
			||||||
 | 
					  </property>
 | 
				
			||||||
 | 
					  <property name="windowTitle">
 | 
				
			||||||
 | 
					   <string>LandslideTrain</string>
 | 
				
			||||||
 | 
					  </property>
 | 
				
			||||||
 | 
					  <layout class="QGridLayout" name="gridLayout_2">
 | 
				
			||||||
 | 
					   <item row="0" column="0">
 | 
				
			||||||
 | 
					    <layout class="QGridLayout" name="gridLayout">
 | 
				
			||||||
 | 
					     <item row="3" column="1">
 | 
				
			||||||
 | 
					      <widget class="QLineEdit" name="lineOutResult"/>
 | 
				
			||||||
 | 
					     </item>
 | 
				
			||||||
 | 
					     <item row="0" column="1">
 | 
				
			||||||
 | 
					      <widget class="QLineEdit" name="lineInModel"/>
 | 
				
			||||||
 | 
					     </item>
 | 
				
			||||||
 | 
					     <item row="1" column="0">
 | 
				
			||||||
 | 
					      <widget class="QLabel" name="label_2">
 | 
				
			||||||
 | 
					       <property name="sizePolicy">
 | 
				
			||||||
 | 
					        <sizepolicy hsizetype="Preferred" vsizetype="Expanding">
 | 
				
			||||||
 | 
					         <horstretch>0</horstretch>
 | 
				
			||||||
 | 
					         <verstretch>0</verstretch>
 | 
				
			||||||
 | 
					        </sizepolicy>
 | 
				
			||||||
 | 
					       </property>
 | 
				
			||||||
 | 
					       <property name="text">
 | 
				
			||||||
 | 
					        <string>输入训练数据路径</string>
 | 
				
			||||||
 | 
					       </property>
 | 
				
			||||||
 | 
					      </widget>
 | 
				
			||||||
 | 
					     </item>
 | 
				
			||||||
 | 
					     <item row="1" column="1">
 | 
				
			||||||
 | 
					      <widget class="QLineEdit" name="lineInDataset"/>
 | 
				
			||||||
 | 
					     </item>
 | 
				
			||||||
 | 
					     <item row="2" column="2">
 | 
				
			||||||
 | 
					      <widget class="QPushButton" name="pbtInLabel">
 | 
				
			||||||
 | 
					       <property name="minimumSize">
 | 
				
			||||||
 | 
					        <size>
 | 
				
			||||||
 | 
					         <width>75</width>
 | 
				
			||||||
 | 
					         <height>0</height>
 | 
				
			||||||
 | 
					        </size>
 | 
				
			||||||
 | 
					       </property>
 | 
				
			||||||
 | 
					       <property name="maximumSize">
 | 
				
			||||||
 | 
					        <size>
 | 
				
			||||||
 | 
					         <width>75</width>
 | 
				
			||||||
 | 
					         <height>16777215</height>
 | 
				
			||||||
 | 
					        </size>
 | 
				
			||||||
 | 
					       </property>
 | 
				
			||||||
 | 
					       <property name="text">
 | 
				
			||||||
 | 
					        <string>打开文件夹</string>
 | 
				
			||||||
 | 
					       </property>
 | 
				
			||||||
 | 
					      </widget>
 | 
				
			||||||
 | 
					     </item>
 | 
				
			||||||
 | 
					     <item row="0" column="2">
 | 
				
			||||||
 | 
					      <widget class="QPushButton" name="pbtInModel">
 | 
				
			||||||
 | 
					       <property name="minimumSize">
 | 
				
			||||||
 | 
					        <size>
 | 
				
			||||||
 | 
					         <width>75</width>
 | 
				
			||||||
 | 
					         <height>0</height>
 | 
				
			||||||
 | 
					        </size>
 | 
				
			||||||
 | 
					       </property>
 | 
				
			||||||
 | 
					       <property name="maximumSize">
 | 
				
			||||||
 | 
					        <size>
 | 
				
			||||||
 | 
					         <width>75</width>
 | 
				
			||||||
 | 
					         <height>16777215</height>
 | 
				
			||||||
 | 
					        </size>
 | 
				
			||||||
 | 
					       </property>
 | 
				
			||||||
 | 
					       <property name="text">
 | 
				
			||||||
 | 
					        <string>打开文件</string>
 | 
				
			||||||
 | 
					       </property>
 | 
				
			||||||
 | 
					      </widget>
 | 
				
			||||||
 | 
					     </item>
 | 
				
			||||||
 | 
					     <item row="0" column="0">
 | 
				
			||||||
 | 
					      <widget class="QLabel" name="label">
 | 
				
			||||||
 | 
					       <property name="sizePolicy">
 | 
				
			||||||
 | 
					        <sizepolicy hsizetype="Preferred" vsizetype="Expanding">
 | 
				
			||||||
 | 
					         <horstretch>0</horstretch>
 | 
				
			||||||
 | 
					         <verstretch>0</verstretch>
 | 
				
			||||||
 | 
					        </sizepolicy>
 | 
				
			||||||
 | 
					       </property>
 | 
				
			||||||
 | 
					       <property name="text">
 | 
				
			||||||
 | 
					        <string>输入初始训练模型路径</string>
 | 
				
			||||||
 | 
					       </property>
 | 
				
			||||||
 | 
					      </widget>
 | 
				
			||||||
 | 
					     </item>
 | 
				
			||||||
 | 
					     <item row="2" column="0">
 | 
				
			||||||
 | 
					      <widget class="QLabel" name="label_3">
 | 
				
			||||||
 | 
					       <property name="sizePolicy">
 | 
				
			||||||
 | 
					        <sizepolicy hsizetype="Preferred" vsizetype="Expanding">
 | 
				
			||||||
 | 
					         <horstretch>0</horstretch>
 | 
				
			||||||
 | 
					         <verstretch>0</verstretch>
 | 
				
			||||||
 | 
					        </sizepolicy>
 | 
				
			||||||
 | 
					       </property>
 | 
				
			||||||
 | 
					       <property name="text">
 | 
				
			||||||
 | 
					        <string>输入标签数据路径</string>
 | 
				
			||||||
 | 
					       </property>
 | 
				
			||||||
 | 
					      </widget>
 | 
				
			||||||
 | 
					     </item>
 | 
				
			||||||
 | 
					     <item row="3" column="0">
 | 
				
			||||||
 | 
					      <widget class="QLabel" name="label_4">
 | 
				
			||||||
 | 
					       <property name="sizePolicy">
 | 
				
			||||||
 | 
					        <sizepolicy hsizetype="Preferred" vsizetype="Expanding">
 | 
				
			||||||
 | 
					         <horstretch>0</horstretch>
 | 
				
			||||||
 | 
					         <verstretch>0</verstretch>
 | 
				
			||||||
 | 
					        </sizepolicy>
 | 
				
			||||||
 | 
					       </property>
 | 
				
			||||||
 | 
					       <property name="text">
 | 
				
			||||||
 | 
					        <string>输出模型文件路径</string>
 | 
				
			||||||
 | 
					       </property>
 | 
				
			||||||
 | 
					      </widget>
 | 
				
			||||||
 | 
					     </item>
 | 
				
			||||||
 | 
					     <item row="1" column="2">
 | 
				
			||||||
 | 
					      <widget class="QPushButton" name="pbtInDataset">
 | 
				
			||||||
 | 
					       <property name="minimumSize">
 | 
				
			||||||
 | 
					        <size>
 | 
				
			||||||
 | 
					         <width>75</width>
 | 
				
			||||||
 | 
					         <height>0</height>
 | 
				
			||||||
 | 
					        </size>
 | 
				
			||||||
 | 
					       </property>
 | 
				
			||||||
 | 
					       <property name="maximumSize">
 | 
				
			||||||
 | 
					        <size>
 | 
				
			||||||
 | 
					         <width>75</width>
 | 
				
			||||||
 | 
					         <height>16777215</height>
 | 
				
			||||||
 | 
					        </size>
 | 
				
			||||||
 | 
					       </property>
 | 
				
			||||||
 | 
					       <property name="text">
 | 
				
			||||||
 | 
					        <string>打开文件夹</string>
 | 
				
			||||||
 | 
					       </property>
 | 
				
			||||||
 | 
					      </widget>
 | 
				
			||||||
 | 
					     </item>
 | 
				
			||||||
 | 
					     <item row="2" column="1">
 | 
				
			||||||
 | 
					      <widget class="QLineEdit" name="lineInLabel"/>
 | 
				
			||||||
 | 
					     </item>
 | 
				
			||||||
 | 
					     <item row="3" column="2">
 | 
				
			||||||
 | 
					      <widget class="QPushButton" name="pbtOutResult">
 | 
				
			||||||
 | 
					       <property name="minimumSize">
 | 
				
			||||||
 | 
					        <size>
 | 
				
			||||||
 | 
					         <width>75</width>
 | 
				
			||||||
 | 
					         <height>0</height>
 | 
				
			||||||
 | 
					        </size>
 | 
				
			||||||
 | 
					       </property>
 | 
				
			||||||
 | 
					       <property name="maximumSize">
 | 
				
			||||||
 | 
					        <size>
 | 
				
			||||||
 | 
					         <width>75</width>
 | 
				
			||||||
 | 
					         <height>16777215</height>
 | 
				
			||||||
 | 
					        </size>
 | 
				
			||||||
 | 
					       </property>
 | 
				
			||||||
 | 
					       <property name="text">
 | 
				
			||||||
 | 
					        <string>打开文件夹</string>
 | 
				
			||||||
 | 
					       </property>
 | 
				
			||||||
 | 
					      </widget>
 | 
				
			||||||
 | 
					     </item>
 | 
				
			||||||
 | 
					     <item row="4" column="1">
 | 
				
			||||||
 | 
					      <layout class="QHBoxLayout" name="horizontalLayout_2">
 | 
				
			||||||
 | 
					       <item>
 | 
				
			||||||
 | 
					        <widget class="QLineEdit" name="lineEpoch1">
 | 
				
			||||||
 | 
					         <property name="maximumSize">
 | 
				
			||||||
 | 
					          <size>
 | 
				
			||||||
 | 
					           <width>80</width>
 | 
				
			||||||
 | 
					           <height>16777215</height>
 | 
				
			||||||
 | 
					          </size>
 | 
				
			||||||
 | 
					         </property>
 | 
				
			||||||
 | 
					        </widget>
 | 
				
			||||||
 | 
					       </item>
 | 
				
			||||||
 | 
					       <item>
 | 
				
			||||||
 | 
					        <widget class="QLabel" name="label_6">
 | 
				
			||||||
 | 
					         <property name="text">
 | 
				
			||||||
 | 
					          <string>解冻训练次数</string>
 | 
				
			||||||
 | 
					         </property>
 | 
				
			||||||
 | 
					         <property name="alignment">
 | 
				
			||||||
 | 
					          <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
 | 
				
			||||||
 | 
					         </property>
 | 
				
			||||||
 | 
					        </widget>
 | 
				
			||||||
 | 
					       </item>
 | 
				
			||||||
 | 
					       <item>
 | 
				
			||||||
 | 
					        <widget class="QLineEdit" name="lineEpoch2">
 | 
				
			||||||
 | 
					         <property name="maximumSize">
 | 
				
			||||||
 | 
					          <size>
 | 
				
			||||||
 | 
					           <width>80</width>
 | 
				
			||||||
 | 
					           <height>16777215</height>
 | 
				
			||||||
 | 
					          </size>
 | 
				
			||||||
 | 
					         </property>
 | 
				
			||||||
 | 
					        </widget>
 | 
				
			||||||
 | 
					       </item>
 | 
				
			||||||
 | 
					      </layout>
 | 
				
			||||||
 | 
					     </item>
 | 
				
			||||||
 | 
					     <item row="4" column="0">
 | 
				
			||||||
 | 
					      <widget class="QLabel" name="label_5">
 | 
				
			||||||
 | 
					       <property name="text">
 | 
				
			||||||
 | 
					        <string>冻结训练次数</string>
 | 
				
			||||||
 | 
					       </property>
 | 
				
			||||||
 | 
					       <property name="alignment">
 | 
				
			||||||
 | 
					        <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
 | 
				
			||||||
 | 
					       </property>
 | 
				
			||||||
 | 
					      </widget>
 | 
				
			||||||
 | 
					     </item>
 | 
				
			||||||
 | 
					    </layout>
 | 
				
			||||||
 | 
					   </item>
 | 
				
			||||||
 | 
					   <item row="1" column="0">
 | 
				
			||||||
 | 
					    <layout class="QHBoxLayout" name="horizontalLayout">
 | 
				
			||||||
 | 
					     <property name="leftMargin">
 | 
				
			||||||
 | 
					      <number>40</number>
 | 
				
			||||||
 | 
					     </property>
 | 
				
			||||||
 | 
					     <item>
 | 
				
			||||||
 | 
					      <widget class="QCheckBox" name="checkBoxGenData">
 | 
				
			||||||
 | 
					       <property name="text">
 | 
				
			||||||
 | 
					        <string>生成训练集、验证集</string>
 | 
				
			||||||
 | 
					       </property>
 | 
				
			||||||
 | 
					       <property name="checked">
 | 
				
			||||||
 | 
					        <bool>true</bool>
 | 
				
			||||||
 | 
					       </property>
 | 
				
			||||||
 | 
					      </widget>
 | 
				
			||||||
 | 
					     </item>
 | 
				
			||||||
 | 
					     <item>
 | 
				
			||||||
 | 
					      <widget class="QCheckBox" name="checkBoxTrain">
 | 
				
			||||||
 | 
					       <property name="text">
 | 
				
			||||||
 | 
					        <string>模型训练</string>
 | 
				
			||||||
 | 
					       </property>
 | 
				
			||||||
 | 
					       <property name="checked">
 | 
				
			||||||
 | 
					        <bool>true</bool>
 | 
				
			||||||
 | 
					       </property>
 | 
				
			||||||
 | 
					      </widget>
 | 
				
			||||||
 | 
					     </item>
 | 
				
			||||||
 | 
					     <item>
 | 
				
			||||||
 | 
					      <spacer name="horizontalSpacer">
 | 
				
			||||||
 | 
					       <property name="orientation">
 | 
				
			||||||
 | 
					        <enum>Qt::Horizontal</enum>
 | 
				
			||||||
 | 
					       </property>
 | 
				
			||||||
 | 
					       <property name="sizeHint" stdset="0">
 | 
				
			||||||
 | 
					        <size>
 | 
				
			||||||
 | 
					         <width>40</width>
 | 
				
			||||||
 | 
					         <height>20</height>
 | 
				
			||||||
 | 
					        </size>
 | 
				
			||||||
 | 
					       </property>
 | 
				
			||||||
 | 
					      </spacer>
 | 
				
			||||||
 | 
					     </item>
 | 
				
			||||||
 | 
					     <item>
 | 
				
			||||||
 | 
					      <widget class="QPushButton" name="pushButton_ok">
 | 
				
			||||||
 | 
					       <property name="text">
 | 
				
			||||||
 | 
					        <string>确认</string>
 | 
				
			||||||
 | 
					       </property>
 | 
				
			||||||
 | 
					      </widget>
 | 
				
			||||||
 | 
					     </item>
 | 
				
			||||||
 | 
					     <item>
 | 
				
			||||||
 | 
					      <spacer name="horizontalSpacer_2">
 | 
				
			||||||
 | 
					       <property name="orientation">
 | 
				
			||||||
 | 
					        <enum>Qt::Horizontal</enum>
 | 
				
			||||||
 | 
					       </property>
 | 
				
			||||||
 | 
					       <property name="sizeType">
 | 
				
			||||||
 | 
					        <enum>QSizePolicy::Fixed</enum>
 | 
				
			||||||
 | 
					       </property>
 | 
				
			||||||
 | 
					       <property name="sizeHint" stdset="0">
 | 
				
			||||||
 | 
					        <size>
 | 
				
			||||||
 | 
					         <width>10</width>
 | 
				
			||||||
 | 
					         <height>20</height>
 | 
				
			||||||
 | 
					        </size>
 | 
				
			||||||
 | 
					       </property>
 | 
				
			||||||
 | 
					      </spacer>
 | 
				
			||||||
 | 
					     </item>
 | 
				
			||||||
 | 
					     <item>
 | 
				
			||||||
 | 
					      <widget class="QPushButton" name="pushButton_cancel">
 | 
				
			||||||
 | 
					       <property name="text">
 | 
				
			||||||
 | 
					        <string>取消</string>
 | 
				
			||||||
 | 
					       </property>
 | 
				
			||||||
 | 
					      </widget>
 | 
				
			||||||
 | 
					     </item>
 | 
				
			||||||
 | 
					    </layout>
 | 
				
			||||||
 | 
					   </item>
 | 
				
			||||||
 | 
					   <item row="2" column="0">
 | 
				
			||||||
 | 
					    <widget class="CProgressBar" name="progressBar">
 | 
				
			||||||
 | 
					     <property name="value">
 | 
				
			||||||
 | 
					      <number>0</number>
 | 
				
			||||||
 | 
					     </property>
 | 
				
			||||||
 | 
					    </widget>
 | 
				
			||||||
 | 
					   </item>
 | 
				
			||||||
 | 
					  </layout>
 | 
				
			||||||
 | 
					 </widget>
 | 
				
			||||||
 | 
					 <layoutdefault spacing="6" margin="11"/>
 | 
				
			||||||
 | 
					 <customwidgets>
 | 
				
			||||||
 | 
					  <customwidget>
 | 
				
			||||||
 | 
					   <class>CProgressBar</class>
 | 
				
			||||||
 | 
					   <extends>QProgressBar</extends>
 | 
				
			||||||
 | 
					   <header>CProgressBar.h</header>
 | 
				
			||||||
 | 
					  </customwidget>
 | 
				
			||||||
 | 
					 </customwidgets>
 | 
				
			||||||
 | 
					 <tabstops>
 | 
				
			||||||
 | 
					  <tabstop>lineInModel</tabstop>
 | 
				
			||||||
 | 
					  <tabstop>pbtInModel</tabstop>
 | 
				
			||||||
 | 
					  <tabstop>lineInDataset</tabstop>
 | 
				
			||||||
 | 
					  <tabstop>pbtInDataset</tabstop>
 | 
				
			||||||
 | 
					  <tabstop>lineInLabel</tabstop>
 | 
				
			||||||
 | 
					  <tabstop>pbtInLabel</tabstop>
 | 
				
			||||||
 | 
					  <tabstop>lineOutResult</tabstop>
 | 
				
			||||||
 | 
					  <tabstop>pbtOutResult</tabstop>
 | 
				
			||||||
 | 
					  <tabstop>lineEpoch1</tabstop>
 | 
				
			||||||
 | 
					  <tabstop>lineEpoch2</tabstop>
 | 
				
			||||||
 | 
					  <tabstop>checkBoxGenData</tabstop>
 | 
				
			||||||
 | 
					  <tabstop>checkBoxTrain</tabstop>
 | 
				
			||||||
 | 
					  <tabstop>pushButton_ok</tabstop>
 | 
				
			||||||
 | 
					  <tabstop>pushButton_cancel</tabstop>
 | 
				
			||||||
 | 
					 </tabstops>
 | 
				
			||||||
 | 
					 <resources>
 | 
				
			||||||
 | 
					  <include location="LandslideTrain.qrc"/>
 | 
				
			||||||
 | 
					 </resources>
 | 
				
			||||||
 | 
					 <connections/>
 | 
				
			||||||
 | 
					</ui>
 | 
				
			||||||
							
								
								
									
										81
									
								
								LandslideTrain/LandslideTrain.vcxproj
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										81
									
								
								LandslideTrain/LandslideTrain.vcxproj
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,81 @@
 | 
				
			|||||||
 | 
					<?xml version="1.0" encoding="utf-8"?>
 | 
				
			||||||
 | 
					<Project DefaultTargets="Build" ToolsVersion="16.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 | 
				
			||||||
 | 
					  <ItemGroup Label="ProjectConfigurations">
 | 
				
			||||||
 | 
					    <ProjectConfiguration Include="Release|x64">
 | 
				
			||||||
 | 
					      <Configuration>Release</Configuration>
 | 
				
			||||||
 | 
					      <Platform>x64</Platform>
 | 
				
			||||||
 | 
					    </ProjectConfiguration>
 | 
				
			||||||
 | 
					  </ItemGroup>
 | 
				
			||||||
 | 
					  <PropertyGroup Label="Globals">
 | 
				
			||||||
 | 
					    <ProjectGuid>{1D23BAC7-1D1A-48BE-9796-93F34E435A5A}</ProjectGuid>
 | 
				
			||||||
 | 
					    <Keyword>QtVS_v304</Keyword>
 | 
				
			||||||
 | 
					    <WindowsTargetPlatformVersion Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">10.0</WindowsTargetPlatformVersion>
 | 
				
			||||||
 | 
					    <QtMsBuild Condition="'$(QtMsBuild)'=='' OR !Exists('$(QtMsBuild)\qt.targets')">$(MSBuildProjectDirectory)\QtMsBuild</QtMsBuild>
 | 
				
			||||||
 | 
					  </PropertyGroup>
 | 
				
			||||||
 | 
					  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
 | 
				
			||||||
 | 
					  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'" Label="Configuration">
 | 
				
			||||||
 | 
					    <ConfigurationType>DynamicLibrary</ConfigurationType>
 | 
				
			||||||
 | 
					    <PlatformToolset>v142</PlatformToolset>
 | 
				
			||||||
 | 
					  </PropertyGroup>
 | 
				
			||||||
 | 
					  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
 | 
				
			||||||
 | 
					  <ImportGroup Condition="Exists('$(QtMsBuild)\qt_defaults.props')">
 | 
				
			||||||
 | 
					    <Import Project="$(QtMsBuild)\qt_defaults.props" />
 | 
				
			||||||
 | 
					  </ImportGroup>
 | 
				
			||||||
 | 
					  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'" Label="QtSettings">
 | 
				
			||||||
 | 
					    <QtInstall>QtQgis</QtInstall>
 | 
				
			||||||
 | 
					    <QtModules>core;gui;widgets</QtModules>
 | 
				
			||||||
 | 
					    <QtBuildConfig>release</QtBuildConfig>
 | 
				
			||||||
 | 
					  </PropertyGroup>
 | 
				
			||||||
 | 
					  <Target Name="QtMsBuildNotFound" BeforeTargets="CustomBuild;ClCompile" Condition="!Exists('$(QtMsBuild)\qt.targets') or !Exists('$(QtMsBuild)\qt.props')">
 | 
				
			||||||
 | 
					    <Message Importance="High" Text="QtMsBuild: could not locate qt.targets, qt.props; project may not build correctly." />
 | 
				
			||||||
 | 
					  </Target>
 | 
				
			||||||
 | 
					  <ImportGroup Label="ExtensionSettings" />
 | 
				
			||||||
 | 
					  <ImportGroup Label="Shared" />
 | 
				
			||||||
 | 
					  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
 | 
				
			||||||
 | 
					    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
 | 
				
			||||||
 | 
					    <Import Project="$(QtMsBuild)\Qt.props" />
 | 
				
			||||||
 | 
					  </ImportGroup>
 | 
				
			||||||
 | 
					  <PropertyGroup Label="UserMacros" />
 | 
				
			||||||
 | 
					  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
 | 
				
			||||||
 | 
					    <IncludePath>D:\qgis\osgeo4w\include;D:\qgis\osgeo4w\apps\Qt5\include;$(IncludePath)</IncludePath>
 | 
				
			||||||
 | 
					    <LibraryPath>D:\qgis\osgeo4w\lib;D:\qgis\osgeo4w\apps\Qt5\lib;$(LibraryPath)</LibraryPath>
 | 
				
			||||||
 | 
					    <TargetName>landslide1_train</TargetName>
 | 
				
			||||||
 | 
					  </PropertyGroup>
 | 
				
			||||||
 | 
					  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'" Label="Configuration">
 | 
				
			||||||
 | 
					    <ClCompile>
 | 
				
			||||||
 | 
					      <TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
 | 
				
			||||||
 | 
					      <MultiProcessorCompilation>true</MultiProcessorCompilation>
 | 
				
			||||||
 | 
					      <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
 | 
				
			||||||
 | 
					      <Optimization>Disabled</Optimization>
 | 
				
			||||||
 | 
					      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
 | 
				
			||||||
 | 
					    </ClCompile>
 | 
				
			||||||
 | 
					    <Link>
 | 
				
			||||||
 | 
					      <SubSystem>Console</SubSystem>
 | 
				
			||||||
 | 
					      <GenerateDebugInformation>true</GenerateDebugInformation>
 | 
				
			||||||
 | 
					    </Link>
 | 
				
			||||||
 | 
					  </ItemDefinitionGroup>
 | 
				
			||||||
 | 
					  <ItemGroup>
 | 
				
			||||||
 | 
					    <QtRcc Include="LandslideTrain.qrc" />
 | 
				
			||||||
 | 
					    <QtUic Include="LandslideTrain.ui" />
 | 
				
			||||||
 | 
					    <QtMoc Include="LandslideTrain.h" />
 | 
				
			||||||
 | 
					    <ClCompile Include="CProgressBar.cpp" />
 | 
				
			||||||
 | 
					    <ClCompile Include="LandslideTrain.cpp" />
 | 
				
			||||||
 | 
					    <ClCompile Include="main.cpp" />
 | 
				
			||||||
 | 
					  </ItemGroup>
 | 
				
			||||||
 | 
					  <ItemGroup>
 | 
				
			||||||
 | 
					    <QtMoc Include="SrsMainPluginInterFace.h" />
 | 
				
			||||||
 | 
					  </ItemGroup>
 | 
				
			||||||
 | 
					  <ItemGroup>
 | 
				
			||||||
 | 
					    <QtMoc Include="CProgressBar.h" />
 | 
				
			||||||
 | 
					    <ClInclude Include="x64\Release\uic\ui_LandslideTrain.h" />
 | 
				
			||||||
 | 
					  </ItemGroup>
 | 
				
			||||||
 | 
					  <ItemGroup>
 | 
				
			||||||
 | 
					    <None Include="LandslideTrain.qss" />
 | 
				
			||||||
 | 
					  </ItemGroup>
 | 
				
			||||||
 | 
					  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
 | 
				
			||||||
 | 
					  <ImportGroup Condition="Exists('$(QtMsBuild)\qt.targets')">
 | 
				
			||||||
 | 
					    <Import Project="$(QtMsBuild)\qt.targets" />
 | 
				
			||||||
 | 
					  </ImportGroup>
 | 
				
			||||||
 | 
					  <ImportGroup Label="ExtensionTargets">
 | 
				
			||||||
 | 
					  </ImportGroup>
 | 
				
			||||||
 | 
					</Project>
 | 
				
			||||||
							
								
								
									
										65
									
								
								LandslideTrain/LandslideTrain.vcxproj.filters
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										65
									
								
								LandslideTrain/LandslideTrain.vcxproj.filters
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,65 @@
 | 
				
			|||||||
 | 
					<?xml version="1.0" encoding="utf-8"?>
 | 
				
			||||||
 | 
					<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 | 
				
			||||||
 | 
					  <ItemGroup>
 | 
				
			||||||
 | 
					    <Filter Include="Source Files">
 | 
				
			||||||
 | 
					      <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
 | 
				
			||||||
 | 
					      <Extensions>qml;cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
 | 
				
			||||||
 | 
					    </Filter>
 | 
				
			||||||
 | 
					    <Filter Include="Header Files">
 | 
				
			||||||
 | 
					      <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
 | 
				
			||||||
 | 
					      <Extensions>h;hh;hpp;hxx;hm;inl;inc;xsd</Extensions>
 | 
				
			||||||
 | 
					    </Filter>
 | 
				
			||||||
 | 
					    <Filter Include="Resource Files">
 | 
				
			||||||
 | 
					      <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
 | 
				
			||||||
 | 
					      <Extensions>qrc;rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
 | 
				
			||||||
 | 
					    </Filter>
 | 
				
			||||||
 | 
					    <Filter Include="Form Files">
 | 
				
			||||||
 | 
					      <UniqueIdentifier>{99349809-55BA-4b9d-BF79-8FDBB0286EB3}</UniqueIdentifier>
 | 
				
			||||||
 | 
					      <Extensions>ui</Extensions>
 | 
				
			||||||
 | 
					    </Filter>
 | 
				
			||||||
 | 
					    <Filter Include="Translation Files">
 | 
				
			||||||
 | 
					      <UniqueIdentifier>{639EADAA-A684-42e4-A9AD-28FC9BCB8F7C}</UniqueIdentifier>
 | 
				
			||||||
 | 
					      <Extensions>ts</Extensions>
 | 
				
			||||||
 | 
					    </Filter>
 | 
				
			||||||
 | 
					  </ItemGroup>
 | 
				
			||||||
 | 
					  <ItemGroup>
 | 
				
			||||||
 | 
					    <QtRcc Include="LandslideTrain.qrc">
 | 
				
			||||||
 | 
					      <Filter>Resource Files</Filter>
 | 
				
			||||||
 | 
					    </QtRcc>
 | 
				
			||||||
 | 
					    <QtUic Include="LandslideTrain.ui">
 | 
				
			||||||
 | 
					      <Filter>Form Files</Filter>
 | 
				
			||||||
 | 
					    </QtUic>
 | 
				
			||||||
 | 
					    <QtMoc Include="LandslideTrain.h">
 | 
				
			||||||
 | 
					      <Filter>Header Files</Filter>
 | 
				
			||||||
 | 
					    </QtMoc>
 | 
				
			||||||
 | 
					    <ClCompile Include="LandslideTrain.cpp">
 | 
				
			||||||
 | 
					      <Filter>Source Files</Filter>
 | 
				
			||||||
 | 
					    </ClCompile>
 | 
				
			||||||
 | 
					  </ItemGroup>
 | 
				
			||||||
 | 
					  <ItemGroup>
 | 
				
			||||||
 | 
					    <ClCompile Include="main.cpp">
 | 
				
			||||||
 | 
					      <Filter>Source Files</Filter>
 | 
				
			||||||
 | 
					    </ClCompile>
 | 
				
			||||||
 | 
					    <ClCompile Include="CProgressBar.cpp">
 | 
				
			||||||
 | 
					      <Filter>Source Files</Filter>
 | 
				
			||||||
 | 
					    </ClCompile>
 | 
				
			||||||
 | 
					  </ItemGroup>
 | 
				
			||||||
 | 
					  <ItemGroup>
 | 
				
			||||||
 | 
					    <QtMoc Include="SrsMainPluginInterFace.h">
 | 
				
			||||||
 | 
					      <Filter>Header Files</Filter>
 | 
				
			||||||
 | 
					    </QtMoc>
 | 
				
			||||||
 | 
					    <QtMoc Include="CProgressBar.h">
 | 
				
			||||||
 | 
					      <Filter>Header Files</Filter>
 | 
				
			||||||
 | 
					    </QtMoc>
 | 
				
			||||||
 | 
					  </ItemGroup>
 | 
				
			||||||
 | 
					  <ItemGroup>
 | 
				
			||||||
 | 
					    <ClInclude Include="x64\Release\uic\ui_LandslideTrain.h">
 | 
				
			||||||
 | 
					      <Filter>Form Files</Filter>
 | 
				
			||||||
 | 
					    </ClInclude>
 | 
				
			||||||
 | 
					  </ItemGroup>
 | 
				
			||||||
 | 
					  <ItemGroup>
 | 
				
			||||||
 | 
					    <None Include="LandslideTrain.qss">
 | 
				
			||||||
 | 
					      <Filter>Resource Files</Filter>
 | 
				
			||||||
 | 
					    </None>
 | 
				
			||||||
 | 
					  </ItemGroup>
 | 
				
			||||||
 | 
					</Project>
 | 
				
			||||||
							
								
								
									
										58
									
								
								LandslideTrain/SrsMainPluginInterFace.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										58
									
								
								LandslideTrain/SrsMainPluginInterFace.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,58 @@
 | 
				
			|||||||
 | 
					#pragma once
 | 
				
			||||||
 | 
					//#if _MSC_VER >=1600  // MSVC2015>1899, msvc_ver=14.0
 | 
				
			||||||
 | 
					//#pragma execution_character_set("utf-8")
 | 
				
			||||||
 | 
					//#endif
 | 
				
			||||||
 | 
					//#include "qtclasslibrary1_global.h"
 | 
				
			||||||
 | 
					#include <qstring.h>
 | 
				
			||||||
 | 
					#include <QtPlugin>
 | 
				
			||||||
 | 
					#include <QVector>
 | 
				
			||||||
 | 
					#include <QObject>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct SPluginMetaData
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						QVector<QString> qvsReturnFilePaths;
 | 
				
			||||||
 | 
						QVector<QString> qvsSendFilePaths;
 | 
				
			||||||
 | 
						bool isAdd2Map;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					class  SrsMainInterface : public QObject
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						Q_OBJECT
 | 
				
			||||||
 | 
					public:
 | 
				
			||||||
 | 
						virtual ~SrsMainInterface() {}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/// <summary>
 | 
				
			||||||
 | 
						/// <20><><EFBFBD><EFBFBD>pannel<65><6C><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | 
				
			||||||
 | 
						/// </summary>
 | 
				
			||||||
 | 
						virtual QString PannelName() = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/// <summary>
 | 
				
			||||||
 | 
						/// <20><><EFBFBD><EFBFBD>Category<72><79><EFBFBD><EFBFBD>
 | 
				
			||||||
 | 
						/// </summary>
 | 
				
			||||||
 | 
						/// <returns></returns>
 | 
				
			||||||
 | 
						virtual QString CategoryName() = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/// <summary>
 | 
				
			||||||
 | 
						/// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD><EFBFBD><EFBFBD>Ӣ<EFBFBD><D3A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | 
				
			||||||
 | 
						/// </summary>
 | 
				
			||||||
 | 
						/// <returns></returns>
 | 
				
			||||||
 | 
						virtual QString EnglishName() = 0;
 | 
				
			||||||
 | 
						/// <summary>
 | 
				
			||||||
 | 
						/// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | 
				
			||||||
 | 
						/// </summary>
 | 
				
			||||||
 | 
						/// <returns></returns>
 | 
				
			||||||
 | 
						virtual QString ChineseName() = 0;
 | 
				
			||||||
 | 
						virtual QString Information() = 0;
 | 
				
			||||||
 | 
						virtual QString IconPath() = 0;
 | 
				
			||||||
 | 
						virtual QWidget* CenterWidget() = 0;
 | 
				
			||||||
 | 
						//
 | 
				
			||||||
 | 
						//public slots:
 | 
				
			||||||
 | 
						//	virtual void test(QWidget* parent) = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					signals:
 | 
				
			||||||
 | 
						void AddDataToMap(QStringList string_list);
 | 
				
			||||||
 | 
						//void addDataToCanvas(QStringList string_list);
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define MainInterface_iid "com.Srs.MainInterface"
 | 
				
			||||||
 | 
					Q_DECLARE_INTERFACE(SrsMainInterface, MainInterface_iid)
 | 
				
			||||||
							
								
								
									
										10
									
								
								LandslideTrain/main.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								LandslideTrain/main.cpp
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,10 @@
 | 
				
			|||||||
 | 
					#include "LandslideTrain.h"
 | 
				
			||||||
 | 
					#include <QtWidgets/QApplication>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int main(int argc, char *argv[])
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    QApplication a(argc, argv);
 | 
				
			||||||
 | 
					    LandslideTrain w;
 | 
				
			||||||
 | 
					    w.CenterWidget()->show();
 | 
				
			||||||
 | 
					    return a.exec();
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										2
									
								
								LandslideTrain/resources/dem_vec.svg
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								LandslideTrain/resources/dem_vec.svg
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,2 @@
 | 
				
			|||||||
 | 
					<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1650520802998" class="icon" viewBox="0 0 1132 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5053" width="28.7421875" height="26" xmlns:xlink="http://www.w3.org/1999/xlink"><defs><style type="text/css">@font-face { font-family: feedback-iconfont; src: url("//at.alicdn.com/t/font_1031158_u69w8yhxdu.woff2?t=1630033759944") format("woff2"), url("//at.alicdn.com/t/font_1031158_u69w8yhxdu.woff?t=1630033759944") format("woff"), url("//at.alicdn.com/t/font_1031158_u69w8yhxdu.ttf?t=1630033759944") format("truetype"); }
 | 
				
			||||||
 | 
					</style></defs><path d="M1131.403629 583.018705c1.939725-47.361608-39.010016-64.495842-39.010017-64.495842l-226.408963-105.391702s0.538812-182.926804 0-232.120374a73.440128 73.440128 0 0 0-40.949741-66.651092S645.82591 35.80085 592.645128 6.974387c-27.694956-15.086747-56.5753 0-56.5753 0S367.529315 89.035513 315.480039 112.312208c-47.577133 21.229208-46.876677 66.651092-46.876677 66.651092V411.891892S120.160551 482.476314 57.873839 509.524696C-1.71881 535.333809 0.005389 589.592216 0.005389 589.592216s0.538812 185.890272 0 234.275623c-0.538812 52.264801 42.350653 68.806341 42.350654 68.806342s143.862906 80.06752 212.669247 114.713156c50.91777 25.539707 83.946969 0.646575 83.946969 0.646575l226.085675-122.525936s178.777948 92.67573 220.859195 121.879361c48.816402 33.729655 82.007245 5.65753 82.007245 5.65753s199.198938-111.156994 230.288412-126.836435c33.298605-16.703184 33.298605-58.030094 33.298605-58.030094s-2.047487-197.905788-0.107762-245.159633zM299.85448 675.371147l-206.903955-99.895816 206.903955-99.949696 210.783404 98.925953-210.783404 100.919559z m232.282018 148.335049l-199.091175 109.594438v-195.696657l199.091175-94.561573v180.663792z m32.705911-537.357589L340.911983 181.010787l223.930426-108.840101 232.766949 108.840101-232.766949 105.391702z m35.66938 64.38808l197.043688-94.561573v159.057415L600.511789 512.110995V350.790568z m235.137723 324.63446l-205.82633-99.895816 197.151451-99.949696 214.662853 99.949696-205.987974 99.895816z m227.378825 154.800797l-195.211725 103.12869v-195.696657l195.211725-94.561573v187.12954z" p-id="5054" fill="#2c2c2c"></path></svg>
 | 
				
			||||||
| 
		 After Width: | Height: | Size: 2.2 KiB  | 
		Reference in New Issue
	
	Block a user