first commit

This commit is contained in:
蔡思睿 2021-10-28 08:38:00 +08:00
commit 1fe6185b03
223 changed files with 15116 additions and 0 deletions

18
.gitignore vendored Normal file
View File

@ -0,0 +1,18 @@
# Build and Release Folders
bin-debug/
bin-release/
[Oo]bj/
[Bb]in/
# Other files and folders
.settings/
# Executables
*.swf
*.air
*.ipa
*.apk
# Project files, i.e. `.project`, `.actionScriptProperties` and `.flexProperties`
# should NOT be excluded as they contain compiler settings and other important
# information for Eclipse / Flash Builder.

View File

@ -0,0 +1,20 @@
@ECHO OFF
SET batFileDir=%cd%
SET pythonExeFilePath=/python-3.7.5-embed-amd64/python.exe
SET MainAppFilePath=/core/main.py
SET pythonExeAbsFilePath=%batFileDir%%pythonExeFilePath%
REM SET pythonExeAbsFilePath=Python
SET MainAppAbsFilePath=%batFileDir%%MainAppFilePath%
SET "spaceChar= "
SET RunCommand=%pythonExeAbsFilePath%%spaceChar%%MainAppAbsFilePath%
ECHO.
ECHO Intelligent UAV path Planning simulation system (V1.0.0) is starting, please wait a moment......
ECHO.
%RunCommand%
PAUSE

Binary file not shown.

View File

@ -0,0 +1,3 @@
{
"python.pythonPath": "C:\\Program Files\\Python37\\python.exe"
}

View File

@ -0,0 +1,133 @@
# -*- coding:utf-8 -*-
import os
import sys
sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
sys.path.append(os.path.dirname(os.path.abspath(__file__)))
import numpy as np
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtWidgets import QApplication, QDialog, QFileDialog, QMessageBox, QTableWidgetItem
#from fileIO import ExcelIO, RasterImgIO, ModelIO
#from data.DataPreprocessor import min_max_scaler, standard_scaler
#from raster.BandCalculator import band_calc
from AppSettingDialogDesigner import Ui_AppSettingDialog
from InitResource import get_icon
class AppSettingDialog(QDialog, Ui_AppSettingDialog):
def __init__(self, setting):
super(AppSettingDialog, self).__init__(None)
self.setupUi(self)
#
self.qSetting = setting
self.working_dir = None
#
self.init_ui_element()
#
#========singal and slot========
self.connect_signal_slot()
def init_ui_element(self):
#
self.setWindowIcon(get_icon("setting"))
#
self.selectWorkingDirPushButton.setIcon(get_icon("select_folder"))
#
working_dir = self.qSetting.value("lastFileDir")
if working_dir is None or not os.path.isdir(working_dir):
working_dir = os.path.expanduser('~')
#
sklearn_params_filepath = self.qSetting.value("sklearnParamsFilepath")
curl_bin_dir = self.qSetting.value("curlBinDir")
mySQLHost = self.qSetting.value("mySQLHost")
mySQLPort = self.qSetting.value("mySQLPort")
geoserverHost = self.qSetting.value("geoserverHost")
geoserverPort = self.qSetting.value("geoserverPort")
#
self.selectWorkingDirLineEdit.setText(working_dir)
self.paramsFileDirLineEdit.setText(sklearn_params_filepath)
self.cURLBinDirLineEdit.setText(curl_bin_dir)
self.mySQLHostLineEdit.setText(mySQLHost)
self.mySQLPortLineEdit.setText(mySQLPort)
self.geoserverHostLineEdit.setText(geoserverHost)
self.geoserverPortLineEdit.setText(geoserverPort)
def connect_signal_slot( self ):
self.appSettingTreeWidget.clicked.connect(self.appSettingTreeWidgetClicked)
self.selectWorkingDirPushButton.clicked.connect(self.selectWorkingDirPushButtonClicked)
#
self.okPushButton.clicked.connect(self.okPushButtonClicked)
self.cancelPushButton.clicked.connect(self.cancelPushButtonClicked)
def appSettingTreeWidgetClicked(self):
selectItemName = self.appSettingTreeWidget.currentItem().text(0)
#
if selectItemName == "工作空间":
self.appSettingStackedWidget.setCurrentIndex(0)
elif selectItemName == "ML模型库":
self.appSettingStackedWidget.setCurrentIndex(1)
elif selectItemName == "cURL程序":
self.appSettingStackedWidget.setCurrentIndex(2)
elif selectItemName == "MySQL数据库":
self.appSettingStackedWidget.setCurrentIndex(3)
elif selectItemName == "GeoServer":
self.appSettingStackedWidget.setCurrentIndex(4)
else:
pass
def selectWorkingDirPushButtonClicked(self):
lastFileDir = str(self.qSetting.value("lastFileDir"))
if not os.path.isdir(lastFileDir):
lastFileDir = os.path.expanduser('~')
#
self.working_dir = QFileDialog.getExistingDirectory(self, "选择一个当前工作路径", lastFileDir)
if self.working_dir != "":
self.selectWorkingDirLineEdit.setText(self.working_dir)
def okPushButtonClicked(self):
self.mySQLHost = self.mySQLHostLineEdit.text()
self.mySQLPort = self.mySQLPortLineEdit.text()
self.geoserverHost = self.geoserverHostLineEdit.text()
self.geoserverPort = self.geoserverPortLineEdit.text()
#
if self.working_dir != "" and self.working_dir is not None:
self.qSetting.setValue("lastFileDir", self.working_dir)
#
if self.mySQLHost != "" and self.mySQLHost is not None:
self.qSetting.setValue("mySQLHost", self.mySQLHost)
#
if self.mySQLPort != "" and self.mySQLPort is not None:
self.qSetting.setValue("mySQLPort", self.mySQLPort)
#
if self.geoserverHost != "" and self.geoserverHost is not None:
self.qSetting.setValue("geoserverHost", self.geoserverHost)
#
if self.geoserverPort != "" and self.geoserverPort is not None:
self.qSetting.setValue("geoserverPort", self.geoserverPort)
#
self.close()
def cancelPushButtonClicked(self):
#
self.close()
def main(setting):
app = QApplication(sys.argv)
appSettingDialog = AppSettingDialog(setting)
appSettingDialog.show()
sys.exit(app.exec_())
if __name__ == "__main__":
#
setting_filename = "Setting.ini"
qSetting = QtCore.QSettings(setting_filename, QtCore.QSettings.IniFormat)
#
main(qSetting)

View File

@ -0,0 +1,169 @@
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file '.\AppSettingDialogDesigner.ui'
#
# Created by: PyQt5 UI code generator 5.13.0
#
# WARNING! All changes made in this file will be lost!
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_AppSettingDialog(object):
def setupUi(self, AppSettingDialog):
AppSettingDialog.setObjectName("AppSettingDialog")
AppSettingDialog.resize(726, 380)
self.VerticalLayout = QtWidgets.QVBoxLayout(AppSettingDialog)
self.VerticalLayout.setContentsMargins(5, 5, 5, 10)
self.VerticalLayout.setSpacing(5)
self.VerticalLayout.setObjectName("VerticalLayout")
self.horizontalLayout = QtWidgets.QHBoxLayout()
self.horizontalLayout.setContentsMargins(-1, -1, -1, 10)
self.horizontalLayout.setObjectName("horizontalLayout")
self.appSettingTreeWidget = QtWidgets.QTreeWidget(AppSettingDialog)
self.appSettingTreeWidget.setObjectName("appSettingTreeWidget")
item_0 = QtWidgets.QTreeWidgetItem(self.appSettingTreeWidget)
item_0 = QtWidgets.QTreeWidgetItem(self.appSettingTreeWidget)
item_0 = QtWidgets.QTreeWidgetItem(self.appSettingTreeWidget)
item_0 = QtWidgets.QTreeWidgetItem(self.appSettingTreeWidget)
item_0 = QtWidgets.QTreeWidgetItem(self.appSettingTreeWidget)
self.appSettingTreeWidget.header().setVisible(True)
self.horizontalLayout.addWidget(self.appSettingTreeWidget)
self.appSettingGroupBox = QtWidgets.QGroupBox(AppSettingDialog)
self.appSettingGroupBox.setTitle("")
self.appSettingGroupBox.setObjectName("appSettingGroupBox")
self.horizontalLayout_3 = QtWidgets.QHBoxLayout(self.appSettingGroupBox)
self.horizontalLayout_3.setContentsMargins(0, 0, 0, 0)
self.horizontalLayout_3.setSpacing(5)
self.horizontalLayout_3.setObjectName("horizontalLayout_3")
self.appSettingStackedWidget = QtWidgets.QStackedWidget(self.appSettingGroupBox)
self.appSettingStackedWidget.setObjectName("appSettingStackedWidget")
self.workingSpaceSettingPage = QtWidgets.QWidget()
self.workingSpaceSettingPage.setObjectName("workingSpaceSettingPage")
self.gridLayout = QtWidgets.QGridLayout(self.workingSpaceSettingPage)
self.gridLayout.setObjectName("gridLayout")
self.selectWorkingDirLineEdit = QtWidgets.QLineEdit(self.workingSpaceSettingPage)
self.selectWorkingDirLineEdit.setObjectName("selectWorkingDirLineEdit")
self.gridLayout.addWidget(self.selectWorkingDirLineEdit, 0, 1, 1, 1)
self.selectWorkingDirPushButton = QtWidgets.QPushButton(self.workingSpaceSettingPage)
self.selectWorkingDirPushButton.setText("")
self.selectWorkingDirPushButton.setObjectName("selectWorkingDirPushButton")
self.gridLayout.addWidget(self.selectWorkingDirPushButton, 0, 2, 1, 1)
self.selectWorkingDirLabel = QtWidgets.QLabel(self.workingSpaceSettingPage)
self.selectWorkingDirLabel.setObjectName("selectWorkingDirLabel")
self.gridLayout.addWidget(self.selectWorkingDirLabel, 0, 0, 1, 1)
spacerItem = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
self.gridLayout.addItem(spacerItem, 1, 0, 1, 1)
self.appSettingStackedWidget.addWidget(self.workingSpaceSettingPage)
self.mlModelLibPage = QtWidgets.QWidget()
self.mlModelLibPage.setObjectName("mlModelLibPage")
self.mlModelLibPageGridLayout = QtWidgets.QGridLayout(self.mlModelLibPage)
self.mlModelLibPageGridLayout.setObjectName("mlModelLibPageGridLayout")
self.paramsFileDirLineEdit = QtWidgets.QLineEdit(self.mlModelLibPage)
self.paramsFileDirLineEdit.setEnabled(False)
self.paramsFileDirLineEdit.setObjectName("paramsFileDirLineEdit")
self.mlModelLibPageGridLayout.addWidget(self.paramsFileDirLineEdit, 0, 1, 1, 1)
spacerItem1 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
self.mlModelLibPageGridLayout.addItem(spacerItem1, 1, 0, 1, 1)
self.paramsFileDirLabel = QtWidgets.QLabel(self.mlModelLibPage)
self.paramsFileDirLabel.setObjectName("paramsFileDirLabel")
self.mlModelLibPageGridLayout.addWidget(self.paramsFileDirLabel, 0, 0, 1, 1)
self.appSettingStackedWidget.addWidget(self.mlModelLibPage)
self.cURLSettingPage = QtWidgets.QWidget()
self.cURLSettingPage.setObjectName("cURLSettingPage")
self.cURLSettingGridLayout = QtWidgets.QGridLayout(self.cURLSettingPage)
self.cURLSettingGridLayout.setObjectName("cURLSettingGridLayout")
self.cURLBinDirLabel = QtWidgets.QLabel(self.cURLSettingPage)
self.cURLBinDirLabel.setObjectName("cURLBinDirLabel")
self.cURLSettingGridLayout.addWidget(self.cURLBinDirLabel, 0, 0, 1, 1)
self.cURLBinDirLineEdit = QtWidgets.QLineEdit(self.cURLSettingPage)
self.cURLBinDirLineEdit.setEnabled(False)
self.cURLBinDirLineEdit.setObjectName("cURLBinDirLineEdit")
self.cURLSettingGridLayout.addWidget(self.cURLBinDirLineEdit, 0, 1, 1, 1)
spacerItem2 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
self.cURLSettingGridLayout.addItem(spacerItem2, 1, 0, 1, 1)
self.appSettingStackedWidget.addWidget(self.cURLSettingPage)
self.mySQLSettingPage = QtWidgets.QWidget()
self.mySQLSettingPage.setObjectName("mySQLSettingPage")
self.mySQLSettingGridLayout = QtWidgets.QGridLayout(self.mySQLSettingPage)
self.mySQLSettingGridLayout.setObjectName("mySQLSettingGridLayout")
self.mySQLHostLineEdit = QtWidgets.QLineEdit(self.mySQLSettingPage)
self.mySQLHostLineEdit.setObjectName("mySQLHostLineEdit")
self.mySQLSettingGridLayout.addWidget(self.mySQLHostLineEdit, 0, 1, 1, 1)
self.mySQLHostLabel = QtWidgets.QLabel(self.mySQLSettingPage)
self.mySQLHostLabel.setObjectName("mySQLHostLabel")
self.mySQLSettingGridLayout.addWidget(self.mySQLHostLabel, 0, 0, 1, 1)
spacerItem3 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
self.mySQLSettingGridLayout.addItem(spacerItem3, 1, 0, 1, 1)
self.mySQLPortLabel = QtWidgets.QLabel(self.mySQLSettingPage)
self.mySQLPortLabel.setObjectName("mySQLPortLabel")
self.mySQLSettingGridLayout.addWidget(self.mySQLPortLabel, 0, 3, 1, 1)
self.mySQLPortLineEdit = QtWidgets.QLineEdit(self.mySQLSettingPage)
self.mySQLPortLineEdit.setObjectName("mySQLPortLineEdit")
self.mySQLSettingGridLayout.addWidget(self.mySQLPortLineEdit, 0, 4, 1, 1)
spacerItem4 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
self.mySQLSettingGridLayout.addItem(spacerItem4, 0, 2, 1, 1)
self.appSettingStackedWidget.addWidget(self.mySQLSettingPage)
self.geoserverSettingPage = QtWidgets.QWidget()
self.geoserverSettingPage.setObjectName("geoserverSettingPage")
self.geoserverSettingGridLayout = QtWidgets.QGridLayout(self.geoserverSettingPage)
self.geoserverSettingGridLayout.setObjectName("geoserverSettingGridLayout")
self.geoserverPortLineEdit = QtWidgets.QLineEdit(self.geoserverSettingPage)
self.geoserverPortLineEdit.setObjectName("geoserverPortLineEdit")
self.geoserverSettingGridLayout.addWidget(self.geoserverPortLineEdit, 0, 4, 1, 1)
self.geoserverPortLabel = QtWidgets.QLabel(self.geoserverSettingPage)
self.geoserverPortLabel.setObjectName("geoserverPortLabel")
self.geoserverSettingGridLayout.addWidget(self.geoserverPortLabel, 0, 3, 1, 1)
self.geoserverHostLabel = QtWidgets.QLabel(self.geoserverSettingPage)
self.geoserverHostLabel.setObjectName("geoserverHostLabel")
self.geoserverSettingGridLayout.addWidget(self.geoserverHostLabel, 0, 0, 1, 1)
spacerItem5 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
self.geoserverSettingGridLayout.addItem(spacerItem5, 1, 1, 1, 1)
self.geoserverHostLineEdit = QtWidgets.QLineEdit(self.geoserverSettingPage)
self.geoserverHostLineEdit.setObjectName("geoserverHostLineEdit")
self.geoserverSettingGridLayout.addWidget(self.geoserverHostLineEdit, 0, 1, 1, 1)
spacerItem6 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
self.geoserverSettingGridLayout.addItem(spacerItem6, 0, 2, 1, 1)
self.appSettingStackedWidget.addWidget(self.geoserverSettingPage)
self.horizontalLayout_3.addWidget(self.appSettingStackedWidget)
self.horizontalLayout.addWidget(self.appSettingGroupBox)
self.horizontalLayout.setStretch(1, 1)
self.VerticalLayout.addLayout(self.horizontalLayout)
self.horizontalLayout_2 = QtWidgets.QHBoxLayout()
self.horizontalLayout_2.setObjectName("horizontalLayout_2")
spacerItem7 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
self.horizontalLayout_2.addItem(spacerItem7)
self.okPushButton = QtWidgets.QPushButton(AppSettingDialog)
self.okPushButton.setObjectName("okPushButton")
self.horizontalLayout_2.addWidget(self.okPushButton)
self.cancelPushButton = QtWidgets.QPushButton(AppSettingDialog)
self.cancelPushButton.setObjectName("cancelPushButton")
self.horizontalLayout_2.addWidget(self.cancelPushButton)
self.VerticalLayout.addLayout(self.horizontalLayout_2)
self.retranslateUi(AppSettingDialog)
self.appSettingStackedWidget.setCurrentIndex(0)
QtCore.QMetaObject.connectSlotsByName(AppSettingDialog)
def retranslateUi(self, AppSettingDialog):
_translate = QtCore.QCoreApplication.translate
AppSettingDialog.setWindowTitle(_translate("AppSettingDialog", "系统设置"))
self.appSettingTreeWidget.headerItem().setText(0, _translate("AppSettingDialog", "设置选项"))
__sortingEnabled = self.appSettingTreeWidget.isSortingEnabled()
self.appSettingTreeWidget.setSortingEnabled(False)
self.appSettingTreeWidget.topLevelItem(0).setText(0, _translate("AppSettingDialog", "工作空间"))
self.appSettingTreeWidget.topLevelItem(1).setText(0, _translate("AppSettingDialog", "ML模型库"))
self.appSettingTreeWidget.topLevelItem(2).setText(0, _translate("AppSettingDialog", "cURL程序"))
self.appSettingTreeWidget.topLevelItem(3).setText(0, _translate("AppSettingDialog", "MySQL数据库"))
self.appSettingTreeWidget.topLevelItem(4).setText(0, _translate("AppSettingDialog", "GeoServer"))
self.appSettingTreeWidget.setSortingEnabled(__sortingEnabled)
self.selectWorkingDirLabel.setText(_translate("AppSettingDialog", "默认工作路径:"))
self.paramsFileDirLabel.setText(_translate("AppSettingDialog", "参数文件路径:"))
self.cURLBinDirLabel.setText(_translate("AppSettingDialog", "cURL路径"))
self.mySQLHostLabel.setText(_translate("AppSettingDialog", "Host"))
self.mySQLPortLabel.setText(_translate("AppSettingDialog", "端口:"))
self.geoserverPortLabel.setText(_translate("AppSettingDialog", "端口:"))
self.geoserverHostLabel.setText(_translate("AppSettingDialog", "Host"))
self.okPushButton.setText(_translate("AppSettingDialog", "确定"))
self.cancelPushButton.setText(_translate("AppSettingDialog", "取消"))

View File

@ -0,0 +1,152 @@
import os
import sys
sys.path.append(os.path.join(os.path.dirname(os.path.dirname(os.path.abspath(__file__))),"python-3.7.2"))
sys.path.append(os.path.join(os.path.dirname(os.path.dirname(os.path.abspath(__file__))),"python-3.7.2/Lib/site-packages"))
sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
sys.path.append(os.path.dirname(os.path.abspath(__file__)))
from PyQt5.QtGui import *
__author__ = '王唯一'
icons_instance = None
pixmap_instance = None
gif_instance = None
def get_icon(name):
global icons_instance
if not icons_instance:
icons_instance = InitResource()
return icons_instance.icon(name)
def get_pixmap(name):
global pixmap_instance
if not pixmap_instance:
pixmap_instance = InitResource()
return pixmap_instance.pixmap(name)
def get_gif(name):
global gif_instance
if not gif_instance:
gif_instance = InitResource()
return gif_instance.gif(name)
class InitResource(object):
def __init__(self):
self._icons = {}
self._pixmap = {}
self._gif = {}
#
resource_dir = "./core/resource/icons"
#
self.make_icon("appLogo", os.path.join(resource_dir, "appLogo.ico"))
#
self.make_icon("1", os.path.join(resource_dir, "1.ico"))
self.make_icon("2", os.path.join(resource_dir, "2.ico"))
self.make_icon("3", os.path.join(resource_dir, "3.ico"))
self.make_icon("4", os.path.join(resource_dir, "4.ico"))
self.make_icon("5", os.path.join(resource_dir, "5.ico"))
self.make_icon("6", os.path.join(resource_dir, "6.ico"))
self.make_icon("7", os.path.join(resource_dir, "7.ico"))
#
self.make_icon("appLogo", os.path.join(resource_dir, "appLogo.ico"))
self.make_icon("select_folder", os.path.join(resource_dir, "select_folder.ico"))
self.make_icon("Cygwin-Terminal", os.path.join(resource_dir, "Cygwin-Terminal.ico"))
self.make_icon("dataViewToolBar", os.path.join(resource_dir, "dataViewToolBar.ico"))
#
self.make_icon("toolBarHelp", os.path.join(resource_dir, "toolBarHelp.ico"))
self.make_icon("toolBarAppSetting", os.path.join(resource_dir, "toolBarAppSetting.ico"))
#
self.make_icon("tableFile_FileListTreeWidget", os.path.join(resource_dir, "tableFile_FileListTreeWidget.ico"))
self.make_icon("rasterFile_FileListTreeWidget", os.path.join(resource_dir, "rasterFile_FileListTreeWidget.ico"))
#
self.make_icon("toolBarFeedback", os.path.join(resource_dir, "toolBarFeedback.ico"))
self.make_icon("toolBarAbout", os.path.join(resource_dir, "toolBarAbout.ico"))
self.make_icon("9", os.path.join(resource_dir, "9.ico") )
self.make_icon("10", os.path.join(resource_dir, "10.ico"))
self.make_icon("s", os.path.join(resource_dir, "s.ico"))
self.make_icon("load_table", os.path.join(resource_dir, "load_table.ico"))
self.make_icon("setting", os.path.join(resource_dir, "setting.ico"))
self.make_icon("checkError", os.path.join(resource_dir, "checkError.ico"))
self.make_icon("next_step", os.path.join(resource_dir, "next_step.ico"))
self.make_icon("previous_step", os.path.join(resource_dir, "previous_step.ico"))
self.make_icon("operation_cancel", os.path.join(resource_dir, "operation_cancel.ico"))
self.make_icon("reset_parameter", os.path.join(resource_dir, "reset_parameter.ico"))
self.make_icon("finish_tip2", os.path.join(resource_dir, "finish_tip2.ico"))
self.make_icon("move_up", os.path.join(resource_dir, "move_up.ico"))
self.make_icon("move_down", os.path.join(resource_dir, "move_down.ico"))
self.make_icon("train_model2", os.path.join(resource_dir, "train_model2.ico"))
self.make_icon("test_model", os.path.join(resource_dir, "test_model.ico"))
self.make_icon("setting", os.path.join(resource_dir, "setting.ico"))
self.make_icon("default", os.path.join(resource_dir, "default.ico"))
###pixmap###
self.make_pixmap("classifier_icon", os.path.join(resource_dir, "classifier_icon.png"))
self.make_pixmap("regressor_icon",os.path.join(resource_dir, "regressor_icon.png"))
self.make_pixmap("clusterer_icon", os.path.join(resource_dir, "clusterer_icon.png"))
self.make_pixmap("select_task", os.path.join(resource_dir, "select_task.ico"))
self.make_pixmap("import_data", os.path.join(resource_dir, "import_data.ico"))
self.make_pixmap("set_parameter",os.path.join(resource_dir, "set_parameter.ico"))
self.make_pixmap("train_model1", os.path.join(resource_dir, "train_model1.ico"))
self.make_pixmap("optimize_model",os.path.join(resource_dir, "optimize_model.ico"))
self.make_pixmap("export_data", os.path.join(resource_dir, "export_data.ico"))
self.make_pixmap("step_tip", os.path.join(resource_dir, "step_tip.ico"))
self.make_pixmap("info_tip", os.path.join(resource_dir, "info_tip.png"))
self.make_pixmap("finish_tip1", os.path.join(resource_dir, "finish_tip1.ico"))
self.make_pixmap("default", os.path.join(resource_dir, "default.ico"))
###gif###
self.make_gif("fit_model", os.path.join(resource_dir, "fit_model.gif"))
self.make_gif("default", os.path.join(resource_dir, "default.ico"))
def make_icon(self, name, path):
icon = QIcon()
icon.addPixmap(QPixmap(path), QIcon.Normal, QIcon.Off)
self._icons[name] = icon
def make_pixmap(self, name, path):
pixmap = QPixmap(path)
self._pixmap[name] = pixmap
def make_gif(self, name, path):
gif = QMovie(path)
self._gif[name] = gif
def icon(self, name):
icon = self._icons["default"]
try:
icon = self._icons[name]
except KeyError:
print("icon " + name + " not found")
return icon
def pixmap(self, name):
pixmap = self._pixmap["default"]
try:
pixmap = self._pixmap[name]
except KeyError:
print("icon " + name + " not found")
return pixmap
def gif(self, name):
gif = self._gif["default"]
try:
gif = self._gif[name]
except KeyError:
print("icon " + name + " not found")
return gif

View File

@ -0,0 +1,403 @@
# -*- coding:utf-8 -*-
import os
import sys
import time
from multiprocessing import Process
import subprocess
import ctypes
sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
sys.path.append(os.path.dirname(os.path.abspath(__file__)))
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtWidgets import QApplication, QMainWindow, QFileDialog, QMessageBox, QTableWidgetItem
from MainWindowDesigner import Ui_MainWindow
from InitResource import get_icon, get_pixmap, get_gif
from AppSettingDialog import AppSettingDialog
STD_INPUT_HANDLE = -10
STD_OUTPUT_HANDLE = -11
STD_ERROR_HANDLE = -12
# 字体颜色定义 ,关键在于颜色编码由2位十六进制组成分别取0~f前一位指的是背景色后一位指的是字体色
#由于该函数的限制应该是只有这16种可以前景色与背景色组合。也可以几种颜色通过或运算组合组合后还是在这16种颜色中
# Windows CMD命令行 字体颜色定义 text colors
FOREGROUND_BLACK = 0x00 # black.
FOREGROUND_DARKBLUE = 0x01 # dark blue.
FOREGROUND_DARKGREEN = 0x02 # dark green.
FOREGROUND_DARKSKYBLUE = 0x03 # dark skyblue.
FOREGROUND_DARKRED = 0x04 # dark red.
FOREGROUND_DARKPINK = 0x05 # dark pink.
FOREGROUND_DARKYELLOW = 0x06 # dark yellow.
FOREGROUND_DARKWHITE = 0x07 # dark white.
FOREGROUND_DARKGRAY = 0x08 # dark gray.
FOREGROUND_BLUE = 0x09 # blue.
FOREGROUND_GREEN = 0x0a # green.
FOREGROUND_SKYBLUE = 0x0b # skyblue.
FOREGROUND_RED = 0x0c # red.
FOREGROUND_PINK = 0x0d # pink.
FOREGROUND_YELLOW = 0x0e # yellow.
FOREGROUND_WHITE = 0x0f # white.
# Windows CMD命令行 背景颜色定义 background colors
BACKGROUND_BLUE = 0x10 # dark blue.
BACKGROUND_GREEN = 0x20 # dark green.
BACKGROUND_DARKSKYBLUE = 0x30 # dark skyblue.
BACKGROUND_DARKRED = 0x40 # dark red.
BACKGROUND_DARKPINK = 0x50 # dark pink.
BACKGROUND_DARKYELLOW = 0x60 # dark yellow.
BACKGROUND_DARKWHITE = 0x70 # dark white.
BACKGROUND_DARKGRAY = 0x80 # dark gray.
BACKGROUND_BLUE = 0x90 # blue.
BACKGROUND_GREEN = 0xa0 # green.
BACKGROUND_SKYBLUE = 0xb0 # skyblue.
BACKGROUND_RED = 0xc0 # red.
BACKGROUND_PINK = 0xd0 # pink.
BACKGROUND_YELLOW = 0xe0 # yellow.
BACKGROUND_WHITE = 0xf0 # white.
# get handle
std_out_handle = ctypes.windll.kernel32.GetStdHandle(STD_OUTPUT_HANDLE)
def set_cmd_text_color(color, handle=std_out_handle):
Bool = ctypes.windll.kernel32.SetConsoleTextAttribute(handle, color)
return Bool
#reset white
def resetColor():
set_cmd_text_color(FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE)
###############################################################
#暗蓝色
#dark blue
def printDarkBlue(mess):
set_cmd_text_color(FOREGROUND_DARKBLUE)
sys.stdout.write(mess)
resetColor()
#暗绿色
#dark green
def printDarkGreen(mess):
set_cmd_text_color(FOREGROUND_DARKGREEN)
sys.stdout.write(mess)
resetColor()
#暗天蓝色
#dark sky blue
def printDarkSkyBlue(mess):
set_cmd_text_color(FOREGROUND_DARKSKYBLUE)
sys.stdout.write(mess)
resetColor()
#暗红色
#dark red
def printDarkRed(mess):
set_cmd_text_color(FOREGROUND_DARKRED)
sys.stdout.write(mess)
resetColor()
#暗粉红色
#dark pink
def printDarkPink(mess):
set_cmd_text_color(FOREGROUND_DARKPINK)
sys.stdout.write(mess)
resetColor()
#暗黄色
#dark yellow
def printDarkYellow(mess):
set_cmd_text_color(FOREGROUND_DARKYELLOW)
sys.stdout.write(mess)
resetColor()
#暗白色
#dark white
def printDarkWhite(mess):
set_cmd_text_color(FOREGROUND_DARKWHITE)
sys.stdout.write(mess)
resetColor()
#暗灰色
#dark gray
def printDarkGray(mess):
set_cmd_text_color(FOREGROUND_DARKGRAY)
sys.stdout.write(mess)
resetColor()
#蓝色
#blue
def printBlue(mess):
set_cmd_text_color(FOREGROUND_BLUE)
sys.stdout.write(mess)
resetColor()
#绿色
#green
def printGreen(mess):
set_cmd_text_color(FOREGROUND_GREEN)
sys.stdout.write(mess)
resetColor()
#天蓝色
#sky blue
def printSkyBlue(mess):
set_cmd_text_color(FOREGROUND_SKYBLUE)
sys.stdout.write(mess)
resetColor()
#红色
#red
def printRed(mess):
set_cmd_text_color(FOREGROUND_RED)
sys.stdout.write(mess)
resetColor()
#粉红色
#pink
def printPink(mess):
set_cmd_text_color(FOREGROUND_PINK)
sys.stdout.write(mess)
resetColor()
#黄色
#yellow
def printYellow(mess):
set_cmd_text_color(FOREGROUND_YELLOW)
sys.stdout.write(mess)
resetColor()
#白色
#white
def printWhite(mess):
set_cmd_text_color(FOREGROUND_WHITE)
sys.stdout.write(mess)
resetColor()
##################################################
#白底黑字
#white bkground and black text
def printWhiteBlack(mess):
set_cmd_text_color(FOREGROUND_BLACK | BACKGROUND_WHITE)
sys.stdout.write(mess)
resetColor()
#白底黑字
#white bkground and black text
def printWhiteBlack_2(mess):
set_cmd_text_color(0xf0)
sys.stdout.write(mess)
resetColor()
#黄底蓝字
#white bkground and black text
def printYellowRed(mess):
set_cmd_text_color(BACKGROUND_YELLOW | FOREGROUND_RED)
sys.stdout.write(mess)
resetColor()
##############################################################
global location
location = "KSFO"
class MainWindow(QMainWindow, Ui_MainWindow):
def __init__(self):
super(MainWindow, self).__init__(None)
self.setupUi(self)
#
self.init_app_config()
self.init_window_ui()
self.init_toolBar_ui()
self.init_toolBox_ui()
self.connect_signal_slot()
def init_app_config(self):
#
self.setting_filename = os.path.dirname(os.path.dirname(__file__)) + \
r"\resource\data\setting.ini"
self.qSetting = QtCore.QSettings(self.setting_filename, QtCore.QSettings.IniFormat)
#
self.working_dir = str(self.qSetting.value("lastFileDir"))
if self.working_dir is None or not os.path.isdir(self.working_dir):
self.working_dir = os.path.expanduser('~')
#
self.qSetting.setValue("lastFileDir", self.working_dir)
#
self.sklearn_params_filepath = str(self.qSetting.value("sklearnParamsFilepath"))
if self.sklearn_params_filepath is None or not os.path.isdir(self.sklearn_params_filepath):
self.sklearn_params_filepath = os.path.dirname(os.path.dirname(__file__)) + \
r"\resource\data\sklearn_params.json"
self.qSetting.setValue("sklearnParamsFilepath", self.sklearn_params_filepath)
#
self.curl_bin_dir = str(self.qSetting.value("curlBinDir"))
if self.curl_bin_dir is None or not os.path.isdir(self.curl_bin_dir):
self.curl_bin_dir = os.path.dirname(os.path.dirname(__file__)) + \
r"\bin\curl-7.65.3-win64-mingw\bin"
#
self.qSetting.setValue("curlBinDir", self.curl_bin_dir)
def init_window_ui(self):
self.setWindowIcon(get_icon("s"))
self.setWindowFlags(QtCore.Qt.WindowMinimizeButtonHint|QtCore.Qt.WindowCloseButtonHint)
def init_toolBar_ui(self):
self.mainToolBar = QtWidgets.QToolBar(self)
self.mainToolBar.setMovable(False)
self.mainToolBar.setToolButtonStyle(QtCore.Qt.ToolButtonTextUnderIcon)
self.mainToolBar.setObjectName("mainToolBar")
self.addToolBar(QtCore.Qt.TopToolBarArea, self.mainToolBar)
#
self.appSettingToolBarAction = QtWidgets.QAction(get_icon("toolBarAppSetting"), "设置", self)
self.mainToolBar.addAction(self.appSettingToolBarAction)
self.mainToolBar.addSeparator()
self.helpToolBarAction = QtWidgets.QAction(get_icon("toolBarHelp"), "帮助", self)
self.mainToolBar.addAction(self.helpToolBarAction)
self.feedbackToolBarAction = QtWidgets.QAction(get_icon("toolBarFeedback"), "反馈", self)
self.mainToolBar.addAction(self.feedbackToolBarAction)
self.aboutToolBarAction = QtWidgets.QAction(get_icon("toolBarAbout"), "关于", self)
self.mainToolBar.addAction(self.aboutToolBarAction)
def init_toolBox_ui(self):
# 虚拟飞行
self.toolBoxTreeWidget.topLevelItem(0).setIcon(0, get_icon("select_folder"))
self.toolBoxTreeWidget.topLevelItem(0).child(0).setIcon(0, get_icon("1"))
self.toolBoxTreeWidget.topLevelItem(0).child(1).setIcon(0, get_icon("select_folder"))
self.toolBoxTreeWidget.topLevelItem(0).child(1).child(0).setIcon(0, get_icon("2"))
self.toolBoxTreeWidget.topLevelItem(0).child(1).child(1).setIcon(0, get_icon("9"))
self.toolBoxTreeWidget.topLevelItem(0).child(1).child(2).setIcon(0, get_icon("10"))
self.toolBoxTreeWidget.topLevelItem(0).child(1).child(3).setIcon(0, get_icon("3"))
# 作战控制台
self.toolBoxTreeWidget.topLevelItem(1).setIcon(0, get_icon("select_folder"))
self.toolBoxTreeWidget.topLevelItem(1).child(0).setIcon(0, get_icon("Cygwin-Terminal"))
self.toolBoxTreeWidget.topLevelItem(1).child(1).setIcon(0, get_icon("tableFile_FileListTreeWidget"))
self.toolBoxTreeWidget.topLevelItem(1).child(2).setIcon(0, get_icon("dataViewToolBar"))
#self.toolBoxTreeWidget.topLevelItem(1).child(3).setIcon(0, get_icon("toolBoxToolTreeWidget"))
# 智能控制台
self.toolBoxTreeWidget.topLevelItem(1).child(3).setIcon(0, get_icon("select_folder"))
self.toolBoxTreeWidget.topLevelItem(1).child(3).child(0).setIcon(0, get_icon("Cygwin-Terminal"))
self.toolBoxTreeWidget.topLevelItem(1).child(3).child(1).setIcon(0, get_icon("5"))
self.toolBoxTreeWidget.topLevelItem(1).child(3).child(2).setIcon(0, get_icon("6"))
self.toolBoxTreeWidget.topLevelItem(1).child(3).child(3).setIcon(0, get_icon("7"))
# 地面站
self.toolBoxTreeWidget.topLevelItem(2).setIcon(0, get_icon("select_folder"))
self.toolBoxTreeWidget.topLevelItem(2).child(0).setIcon(0, get_icon("4"))
def connect_signal_slot(self):
self.appSettingToolBarAction.triggered.connect(self.appSettingToolBarActionTriggered)
self.toolBoxTreeWidget.doubleClicked.connect(self.toolBoxTreeWidgetDoubleClicked)
def appSettingToolBarActionTriggered(self):
appSettingDialog = AppSettingDialog(self.qSetting)
appSettingDialog.exec()
def toolBoxTreeWidgetDoubleClicked(self):
selectToolName = self.toolBoxTreeWidget.currentItem().text(0)
global location
if selectToolName == "启动FlightGear飞行模拟器":
printSkyBlue(u'正在启动FlightGear飞行模拟器......\n')
process1 = subprocess.Popen(["C:/cygwin64/home/Lenovo/ardupilot/Tools/autotest/fg_quad_view.bat"])
#printSkyBlue(u'FlightGear飞行模拟器启动完成\n')
#subprocess.call("start /wait C:/cygwin64/home/Lenovo/ardupilot/Tools/autotest/fg_quad_view.bat", shell=True)
#son_p1=Process(target=run_FlightGear,args={})
#son_p1.start()
#son_p1.join()
elif selectToolName == "测试位置:德国吕纳堡(EDHG)":
location = "EDHG"
printBlue(u'目标位置确定:' + location + '\n')
elif selectToolName == "测试位置:布兰肯塞机场(EDHL)":
location = "EDHL"
printBlue(u'目标位置确定:' + location + '\n')
elif selectToolName == "测试位置:佛罗里达(SCSE)":
location = "SCSE"
printBlue(u'目标位置确定:' + location + '\n')
elif selectToolName == "自定义地理坐标":
printBlue(u'因平台重新编译原因,请开启编程环境——作战平台并执行以下两段代码,注意替换实际的值:\n')
printBlue(u'cd /home/Lenovo/ardupilot/ArduCopter\n')
printBlue(u'../Tools/autotest/sim_vehicle.py --map -l ' + "目标纬度,目标经度,飞行高度,无人机朝向" + ' --console\n')
elif selectToolName == "启动编程环境——作战平台":
printYellow(u'正在启动编程环境——作战平台......\n')
os.system("mintty.exe -i /Cygwin-Terminal.ico -")
printYellow(u'编程环境——作战平台启动完成\n')
elif selectToolName == "仅加载Mavproxy控制台":
printDarkGreen(u'因平台重新编译原因,请分别在编程环境——作战平台下执行以下两段代码:\n')
printDarkGreen(u'cd /home/Lenovo/ardupilot/ArduCopter\n')
printDarkGreen(u'../Tools/autotest/sim_vehicle.py --console\n')
elif selectToolName == "加载Mavproxy控制台与战场俯视图":
printDarkSkyBlue(u'因平台重新编译原因,请分别在编程环境——作战平台下执行以下两段代码:\n')
printDarkSkyBlue(u'cd /home/Lenovo/ardupilot/ArduCopter\n')
printDarkSkyBlue(u'../Tools/autotest/sim_vehicle.py --map -L ' + location + ' --console\n')
elif selectToolName == "启动编程环境——智能平台":
printYellow(u'正在启动编程环境——智能平台......\n')
os.system("mintty.exe -i /Cygwin-Terminal.ico -")
printYellow(u'编程环境——智能平台启动完成\n')
elif selectToolName == "autoFly获取无人机信息":
printDarkPink(u'因平台重新编译原因,请分别在编程环境——智能平台下执行以下两段代码:\n')
printDarkPink(u'cd /home/Lenovo/ardupilot/ArduCopter/PyScripts\n')
printDarkPink(u'python autoFly获取无人机信息.py\n')
elif selectToolName == "autoFly前后左右升降俯仰":
printDarkYellow(u'因平台重新编译原因,请分别在编程环境——智能平台下执行以下两段代码:\n')
printDarkYellow(u'cd /home/Lenovo/ardupilot/ArduCopter/PyScripts\n')
printDarkYellow(u'python autoFly前后左右升降俯仰.py\n')
elif selectToolName == "autoFly连续飞行":
printSkyBlue(u'因平台重新编译原因,请分别在编程环境——智能平台下执行以下两段代码:\n')
printSkyBlue(u'cd /home/Lenovo/ardupilot/ArduCopter/PyScripts\n')
printSkyBlue(u'python autoFly连续飞行.py\n')
elif selectToolName == "启动地面站Mission Planner":
printDarkRed(u'地面站Mission Planner启动......\n')
son_p2=Process(target=run_MP,args={})
son_p2.start()
son_p2.join()
printDarkRed(u'请在Mavproxy控制台输入代码并执行\n')
printDarkRed(u'output add 127.0.0.1:14550\n')
printDarkRed(u'地面站Mission Planner启动完成\n')
else:
pass
def closeEvent(self, QCloseEvent):
qMsg = QMessageBox.question(self, "提示","退出仿真程序?")
if qMsg == QMessageBox.Yes:
QCloseEvent.accept()
else:
QCloseEvent.ignore()
def run_MP():
process2 = subprocess.Popen([subprocess.call("start start /B /wait MissionPlanner.exe", shell=True)])
def main():
app = QApplication(sys.argv)
mainWindow = MainWindow()
mainWindow.show()
sys.exit(app.exec_())
if __name__ == "__main__":
#启动
main()

View File

@ -0,0 +1,85 @@
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file '.\MainWindowDesigner.ui'
#
# Created by: PyQt5 UI code generator 5.12.3
#
# WARNING! All changes made in this file will be lost!
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(402, 676)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.horizontalLayout = QtWidgets.QHBoxLayout(self.centralwidget)
self.horizontalLayout.setContentsMargins(0, 0, 0, 0)
self.horizontalLayout.setSpacing(5)
self.horizontalLayout.setObjectName("horizontalLayout")
self.toolBoxTreeWidget = QtWidgets.QTreeWidget(self.centralwidget)
self.toolBoxTreeWidget.setHeaderHidden(True)
self.toolBoxTreeWidget.setObjectName("toolBoxTreeWidget")
self.toolBoxTreeWidget.headerItem().setText(0, "1")
item_0 = QtWidgets.QTreeWidgetItem(self.toolBoxTreeWidget)
item_1 = QtWidgets.QTreeWidgetItem(item_0)
item_1 = QtWidgets.QTreeWidgetItem(item_0)
item_2 = QtWidgets.QTreeWidgetItem(item_1)
item_2 = QtWidgets.QTreeWidgetItem(item_1)
item_2 = QtWidgets.QTreeWidgetItem(item_1)
item_2 = QtWidgets.QTreeWidgetItem(item_1)
item_0 = QtWidgets.QTreeWidgetItem(self.toolBoxTreeWidget)
item_1 = QtWidgets.QTreeWidgetItem(item_0)
item_1 = QtWidgets.QTreeWidgetItem(item_0)
item_1 = QtWidgets.QTreeWidgetItem(item_0)
item_1 = QtWidgets.QTreeWidgetItem(item_0)
item_2 = QtWidgets.QTreeWidgetItem(item_1)
item_2 = QtWidgets.QTreeWidgetItem(item_1)
item_2 = QtWidgets.QTreeWidgetItem(item_1)
item_2 = QtWidgets.QTreeWidgetItem(item_1)
item_0 = QtWidgets.QTreeWidgetItem(self.toolBoxTreeWidget)
item_1 = QtWidgets.QTreeWidgetItem(item_0)
self.horizontalLayout.addWidget(self.toolBoxTreeWidget)
MainWindow.setCentralWidget(self.centralwidget)
self.statusBar = QtWidgets.QStatusBar(MainWindow)
self.statusBar.setObjectName("statusBar")
MainWindow.setStatusBar(self.statusBar)
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "智能无人机路径规划仿真系统 V1.0.0"))
__sortingEnabled = self.toolBoxTreeWidget.isSortingEnabled()
self.toolBoxTreeWidget.setSortingEnabled(False)
self.toolBoxTreeWidget.topLevelItem(0).setText(0, _translate("MainWindow", "虚拟飞行"))
self.toolBoxTreeWidget.topLevelItem(0).child(0).setText(0, _translate("MainWindow", "启动FlightGear飞行模拟器"))
self.toolBoxTreeWidget.topLevelItem(0).child(1).setText(0, _translate("MainWindow", "选择作战地图"))
self.toolBoxTreeWidget.topLevelItem(0).child(1).child(0).setText(0, _translate("MainWindow", "测试位置:德国吕纳堡(EDHG)"))
self.toolBoxTreeWidget.topLevelItem(0).child(1).child(1).setText(0, _translate("MainWindow", "测试位置:布兰肯塞机场(EDHL)"))
self.toolBoxTreeWidget.topLevelItem(0).child(1).child(2).setText(0, _translate("MainWindow", "测试位置:佛罗里达(SCSE)"))
self.toolBoxTreeWidget.topLevelItem(0).child(1).child(3).setText(0, _translate("MainWindow", "自定义地理坐标"))
self.toolBoxTreeWidget.topLevelItem(1).setText(0, _translate("MainWindow", "作战控制台"))
self.toolBoxTreeWidget.topLevelItem(1).child(0).setText(0, _translate("MainWindow", "启动编程环境——作战平台"))
self.toolBoxTreeWidget.topLevelItem(1).child(1).setText(0, _translate("MainWindow", "仅加载Mavproxy控制台"))
self.toolBoxTreeWidget.topLevelItem(1).child(2).setText(0, _translate("MainWindow", "加载Mavproxy控制台与战场俯视图"))
self.toolBoxTreeWidget.topLevelItem(1).child(3).setText(0, _translate("MainWindow", "智能控制"))
self.toolBoxTreeWidget.topLevelItem(1).child(3).child(0).setText(0, _translate("MainWindow", "启动编程环境——智能平台"))
self.toolBoxTreeWidget.topLevelItem(1).child(3).child(1).setText(0, _translate("MainWindow", "autoFly获取无人机信息"))
self.toolBoxTreeWidget.topLevelItem(1).child(3).child(2).setText(0, _translate("MainWindow", "autoFly前后左右升降俯仰"))
self.toolBoxTreeWidget.topLevelItem(1).child(3).child(3).setText(0, _translate("MainWindow", "autoFly连续飞行"))
self.toolBoxTreeWidget.topLevelItem(2).setText(0, _translate("MainWindow", "地面站"))
self.toolBoxTreeWidget.topLevelItem(2).child(0).setText(0, _translate("MainWindow", "启动地面站Mission Planner"))
self.toolBoxTreeWidget.setSortingEnabled(__sortingEnabled)

View File

@ -0,0 +1,35 @@
# -*- coding: utf-8 -*-
import os
import sys
sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
sys.path.append(os.path.dirname(os.path.abspath(__file__)))
from PyQt5 import QtCore, QtWidgets
from PyQt5.QtWidgets import QDialog, QApplication, QFileDialog, QMessageBox
import numpy as np
from InitResource import get_icon
from SampleMakerDialogDesigner import Ui_SampleMakerDialog
from fileIO import ExcelIO
from data import SampleMaker
from chart.StatsChart import CoordinateAxis, BarChart, HistgramChart
class SampleMakerDialog(QDialog, Ui_SampleMakerDialog):
'''
'''
#
qSetting = None
#
training_cv_samples = None
test_samples = None
if __name__ == "__main__":
os.system("C:\cygwin64\home\Lenovo\ardupilot\Tools\autotest\fg_quad_view.bat")

View File

@ -0,0 +1,338 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>AppSettingDialog</class>
<widget class="QDialog" name="AppSettingDialog">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>726</width>
<height>380</height>
</rect>
</property>
<property name="windowTitle">
<string>系统设置</string>
</property>
<layout class="QVBoxLayout" name="VerticalLayout" stretch="0,0">
<property name="spacing">
<number>5</number>
</property>
<property name="leftMargin">
<number>5</number>
</property>
<property name="topMargin">
<number>5</number>
</property>
<property name="rightMargin">
<number>5</number>
</property>
<property name="bottomMargin">
<number>10</number>
</property>
<item>
<layout class="QHBoxLayout" name="horizontalLayout" stretch="0,1">
<property name="bottomMargin">
<number>10</number>
</property>
<item>
<widget class="QTreeWidget" name="appSettingTreeWidget">
<attribute name="headerVisible">
<bool>true</bool>
</attribute>
<column>
<property name="text">
<string>设置选项</string>
</property>
</column>
<item>
<property name="text">
<string>工作空间</string>
</property>
</item>
<item>
<property name="text">
<string>ML模型库</string>
</property>
</item>
<item>
<property name="text">
<string>cURL程序</string>
</property>
</item>
<item>
<property name="text">
<string>MySQL数据库</string>
</property>
</item>
<item>
<property name="text">
<string>GeoServer</string>
</property>
</item>
</widget>
</item>
<item>
<widget class="QGroupBox" name="appSettingGroupBox">
<property name="title">
<string/>
</property>
<layout class="QHBoxLayout" name="horizontalLayout_3">
<property name="spacing">
<number>5</number>
</property>
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="QStackedWidget" name="appSettingStackedWidget">
<property name="currentIndex">
<number>0</number>
</property>
<widget class="QWidget" name="workingSpaceSettingPage">
<layout class="QGridLayout" name="gridLayout">
<item row="0" column="1">
<widget class="QLineEdit" name="selectWorkingDirLineEdit"/>
</item>
<item row="0" column="2">
<widget class="QPushButton" name="selectWorkingDirPushButton">
<property name="text">
<string/>
</property>
</widget>
</item>
<item row="0" column="0">
<widget class="QLabel" name="selectWorkingDirLabel">
<property name="text">
<string>默认工作路径:</string>
</property>
</widget>
</item>
<item row="1" column="0">
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
<widget class="QWidget" name="mlModelLibPage">
<layout class="QGridLayout" name="mlModelLibPageGridLayout">
<item row="0" column="1">
<widget class="QLineEdit" name="paramsFileDirLineEdit">
<property name="enabled">
<bool>false</bool>
</property>
</widget>
</item>
<item row="1" column="0">
<spacer name="verticalSpacer_2">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
<item row="0" column="0">
<widget class="QLabel" name="paramsFileDirLabel">
<property name="text">
<string>参数文件路径:</string>
</property>
</widget>
</item>
</layout>
</widget>
<widget class="QWidget" name="cURLSettingPage">
<layout class="QGridLayout" name="cURLSettingGridLayout">
<item row="0" column="0">
<widget class="QLabel" name="cURLBinDirLabel">
<property name="text">
<string>cURL路径</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QLineEdit" name="cURLBinDirLineEdit">
<property name="enabled">
<bool>false</bool>
</property>
</widget>
</item>
<item row="1" column="0">
<spacer name="verticalSpacer_3">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
<widget class="QWidget" name="mySQLSettingPage">
<layout class="QGridLayout" name="mySQLSettingGridLayout">
<item row="0" column="1">
<widget class="QLineEdit" name="mySQLHostLineEdit"/>
</item>
<item row="0" column="0">
<widget class="QLabel" name="mySQLHostLabel">
<property name="text">
<string>Host</string>
</property>
</widget>
</item>
<item row="1" column="0">
<spacer name="verticalSpacer_4">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
<item row="0" column="3">
<widget class="QLabel" name="mySQLPortLabel">
<property name="text">
<string>端口:</string>
</property>
</widget>
</item>
<item row="0" column="4">
<widget class="QLineEdit" name="mySQLPortLineEdit"/>
</item>
<item row="0" column="2">
<spacer name="horizontalSpacer_2">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
<widget class="QWidget" name="geoserverSettingPage">
<layout class="QGridLayout" name="geoserverSettingGridLayout">
<item row="0" column="4">
<widget class="QLineEdit" name="geoserverPortLineEdit"/>
</item>
<item row="0" column="3">
<widget class="QLabel" name="geoserverPortLabel">
<property name="text">
<string>端口:</string>
</property>
</widget>
</item>
<item row="0" column="0">
<widget class="QLabel" name="geoserverHostLabel">
<property name="text">
<string>Host</string>
</property>
</widget>
</item>
<item row="1" column="1">
<spacer name="verticalSpacer_5">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
<item row="0" column="1">
<widget class="QLineEdit" name="geoserverHostLineEdit"/>
</item>
<item row="0" column="2">
<spacer name="horizontalSpacer_3">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
</widget>
</item>
</layout>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_2">
<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="okPushButton">
<property name="text">
<string>确定</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="cancelPushButton">
<property name="text">
<string>取消</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
<resources/>
<connections/>
</ui>

View File

@ -0,0 +1,327 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>BandCalculatorDialog</class>
<widget class="QDialog" name="BandCalculatorDialog">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>990</width>
<height>513</height>
</rect>
</property>
<property name="windowTitle">
<string>波段计算器</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<property name="spacing">
<number>10</number>
</property>
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<layout class="QGridLayout" name="gridLayout">
<property name="leftMargin">
<number>10</number>
</property>
<property name="topMargin">
<number>10</number>
</property>
<property name="rightMargin">
<number>10</number>
</property>
<property name="bottomMargin">
<number>10</number>
</property>
<property name="spacing">
<number>10</number>
</property>
<item row="0" column="0">
<widget class="QLabel" name="fileListLabel">
<property name="text">
<string>文件列表:</string>
</property>
</widget>
</item>
<item row="1" column="0" rowspan="3" colspan="3">
<widget class="QTableWidget" name="fileListTableWidget">
<property name="selectionMode">
<enum>QAbstractItemView::SingleSelection</enum>
</property>
<property name="selectionBehavior">
<enum>QAbstractItemView::SelectRows</enum>
</property>
<property name="rowCount">
<number>49</number>
</property>
<property name="columnCount">
<number>2</number>
</property>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<column>
<property name="text">
<string>输入影像</string>
</property>
</column>
<column>
<property name="text">
<string>输出影像</string>
</property>
</column>
</widget>
</item>
<item row="1" column="3">
<widget class="QPushButton" name="selectImageFilePushButton">
<property name="text">
<string/>
</property>
</widget>
</item>
<item row="2" column="3">
<widget class="QPushButton" name="deleteImageFilePushButton">
<property name="text">
<string/>
</property>
</widget>
</item>
<item row="3" column="3">
<widget class="QPushButton" name="clearImageFilePushButton">
<property name="text">
<string/>
</property>
</widget>
</item>
<item row="4" column="0">
<widget class="QLabel" name="validBandLabel">
<property name="text">
<string>有效波段:</string>
</property>
</widget>
</item>
<item row="6" column="0">
<widget class="QLabel" name="bandCalculationFormulaLabel">
<property name="text">
<string>波段计算公式e.g.(B5-B4)/(B5+B4)</string>
</property>
</widget>
</item>
<item row="7" column="3">
<widget class="QPushButton" name="addBandCalculationFormulaPushButton">
<property name="maximumSize">
<size>
<width>40</width>
<height>40</height>
</size>
</property>
<property name="text">
<string>添加</string>
</property>
</widget>
</item>
<item row="8" column="0">
<widget class="QLabel" name="validBandCalculationFormulaLabel">
<property name="text">
<string>有效波段计算公式:</string>
</property>
</widget>
</item>
<item row="8" column="2">
<widget class="QLabel" name="saveBandOrderLabel">
<property name="text">
<string>波段保存顺序:</string>
</property>
</widget>
</item>
<item row="9" column="0" rowspan="4">
<widget class="QListWidget" name="validBandCalculationFormulaListWidget"/>
</item>
<item row="9" column="2" rowspan="4">
<widget class="QListWidget" name="saveBandOrderListWidget">
<property name="selectionMode">
<enum>QAbstractItemView::ExtendedSelection</enum>
</property>
</widget>
</item>
<item row="9" column="3">
<widget class="QPushButton" name="moveUpBandPushButton">
<property name="text">
<string/>
</property>
</widget>
</item>
<item row="10" column="1">
<widget class="QPushButton" name="deleteBandCalculationFormulaPushButton">
<property name="text">
<string/>
</property>
</widget>
</item>
<item row="10" column="3">
<widget class="QPushButton" name="moveDownBandPushButton">
<property name="text">
<string/>
</property>
</widget>
</item>
<item row="11" column="1">
<widget class="QPushButton" name="clearBandCalculationFormulaPushButton">
<property name="text">
<string/>
</property>
</widget>
</item>
<item row="11" column="3">
<widget class="QPushButton" name="deleteBandPushButton">
<property name="text">
<string/>
</property>
</widget>
</item>
<item row="12" column="3">
<widget class="QPushButton" name="resetBandPushButton">
<property name="text">
<string/>
</property>
</widget>
</item>
<item row="13" column="0">
<widget class="QLabel" name="selectSaveDirectoryLabel">
<property name="text">
<string>保存位置:</string>
</property>
</widget>
</item>
<item row="14" column="3">
<widget class="QPushButton" name="selectSaveDirectoryPushButton">
<property name="text">
<string/>
</property>
</widget>
</item>
<item row="5" column="0" colspan="3">
<widget class="QLineEdit" name="validBandLineEdit"/>
</item>
<item row="7" column="0" colspan="3">
<widget class="QLineEdit" name="bandCalculationFormulaLineEdit"/>
</item>
<item row="14" column="0" colspan="3">
<widget class="QLineEdit" name="selectSaveDirectoryLineEdit"/>
</item>
</layout>
</item>
<item>
<widget class="Line" name="line">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout">
<property name="spacing">
<number>10</number>
</property>
<property name="leftMargin">
<number>10</number>
</property>
<property name="topMargin">
<number>10</number>
</property>
<property name="rightMargin">
<number>10</number>
</property>
<property name="bottomMargin">
<number>10</number>
</property>
<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="okPushButton">
<property name="text">
<string>确定</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="cancelPushButton">
<property name="text">
<string>取消</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
<resources/>
<connections/>
</ui>

View File

@ -0,0 +1,275 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>BandSpliterDialog</class>
<widget class="QDialog" name="BandSpliterDialog">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>751</width>
<height>546</height>
</rect>
</property>
<property name="windowTitle">
<string>波段分离</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<property name="spacing">
<number>10</number>
</property>
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<layout class="QGridLayout" name="gridLayout_3">
<property name="leftMargin">
<number>5</number>
</property>
<property name="topMargin">
<number>5</number>
</property>
<property name="rightMargin">
<number>5</number>
</property>
<property name="bottomMargin">
<number>5</number>
</property>
<property name="spacing">
<number>10</number>
</property>
<item row="9" column="7">
<widget class="QPushButton" name="selectSaveDirPushButton">
<property name="text">
<string/>
</property>
</widget>
</item>
<item row="5" column="4">
<widget class="QLabel" name="splitBandLabel">
<property name="maximumSize">
<size>
<width>60</width>
<height>16777215</height>
</size>
</property>
<property name="text">
<string>分离波段:</string>
</property>
</widget>
</item>
<item row="2" column="7">
<widget class="QPushButton" name="removeFilePushButton">
<property name="text">
<string/>
</property>
</widget>
</item>
<item row="8" column="5">
<widget class="QComboBox" name="selectSaveFormatComboBox">
<item>
<property name="text">
<string>GeoTiff(*.tif)</string>
</property>
</item>
</widget>
</item>
<item row="8" column="0">
<widget class="QLabel" name="selectSaveStyleLabel">
<property name="text">
<string>保存方式:</string>
</property>
</widget>
</item>
<item row="1" column="0" rowspan="4" colspan="7">
<widget class="QTableWidget" name="selecrFileListTableWidget"/>
</item>
<item row="8" column="1">
<widget class="QComboBox" name="selectSaveStyleComboBox">
<item>
<property name="text">
<string>多波段文件</string>
</property>
</item>
<item>
<property name="text">
<string>单波段文件</string>
</property>
</item>
</widget>
</item>
<item row="6" column="0" rowspan="2" colspan="3">
<widget class="QListWidget" name="validBandListWidget"/>
</item>
<item row="8" column="4">
<widget class="QLabel" name="selectSaveFormatLabel">
<property name="text">
<string>保存格式:</string>
</property>
</widget>
</item>
<item row="1" column="7">
<widget class="QPushButton" name="selectFilePushButton">
<property name="maximumSize">
<size>
<width>35</width>
<height>16777215</height>
</size>
</property>
<property name="text">
<string/>
</property>
</widget>
</item>
<item row="3" column="7">
<widget class="QPushButton" name="clearFilePushButton">
<property name="text">
<string/>
</property>
</widget>
</item>
<item row="9" column="1" colspan="6">
<widget class="QLineEdit" name="selectSaveDirLineEdit"/>
</item>
<item row="9" column="0">
<widget class="QLabel" name="selectSaveDirLabel">
<property name="text">
<string>保存位置:</string>
</property>
</widget>
</item>
<item row="6" column="3">
<widget class="QToolButton" name="addSplitBandToolButton">
<property name="text">
<string>&gt;</string>
</property>
</widget>
</item>
<item row="0" column="0">
<widget class="QLabel" name="selectFileListLabel">
<property name="text">
<string>文件列表:</string>
</property>
</widget>
</item>
<item row="6" column="4" rowspan="2" colspan="3">
<widget class="QListWidget" name="splitBandListWidget"/>
</item>
<item row="4" column="7">
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
<item row="10" column="1" colspan="6">
<widget class="QLineEdit" name="selectSaveFileNameLineEdit"/>
</item>
<item row="10" column="0">
<widget class="QLabel" name="selectSaveFileNameLabel">
<property name="text">
<string>保存文件:</string>
</property>
</widget>
</item>
<item row="10" column="7">
<widget class="QPushButton" name="selectSaveFileNamePushButton">
<property name="text">
<string/>
</property>
</widget>
</item>
<item row="5" column="0">
<widget class="QLabel" name="validBandLabel">
<property name="maximumSize">
<size>
<width>60</width>
<height>16777215</height>
</size>
</property>
<property name="text">
<string>有效波段:</string>
</property>
</widget>
</item>
<item row="7" column="3">
<widget class="QToolButton" name="removeSplitBandToolButton">
<property name="text">
<string>&lt;</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<widget class="Line" name="line">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout">
<property name="spacing">
<number>10</number>
</property>
<property name="leftMargin">
<number>5</number>
</property>
<property name="topMargin">
<number>5</number>
</property>
<property name="rightMargin">
<number>5</number>
</property>
<property name="bottomMargin">
<number>5</number>
</property>
<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="okPushButton">
<property name="text">
<string>确定</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="cancelPushButton">
<property name="text">
<string>取消</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
<resources/>
<connections/>
</ui>

View File

@ -0,0 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>BandSpliterDialog</class>
<widget class="QDialog" name="BandSpliterDialog">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>613</width>
<height>674</height>
</rect>
</property>
<property name="windowTitle">
<string>波段分离</string>
</property>
</widget>
<resources/>
<connections/>
</ui>

View File

@ -0,0 +1,160 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>BandStackingDialog</class>
<widget class="QDialog" name="BandStackingDialog">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>776</width>
<height>521</height>
</rect>
</property>
<property name="windowTitle">
<string>Dialog</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout" stretch="1,0,0">
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<item>
<layout class="QGridLayout" name="gridLayout">
<property name="leftMargin">
<number>10</number>
</property>
<property name="topMargin">
<number>10</number>
</property>
<property name="rightMargin">
<number>10</number>
</property>
<property name="bottomMargin">
<number>10</number>
</property>
<property name="horizontalSpacing">
<number>5</number>
</property>
<property name="verticalSpacing">
<number>15</number>
</property>
<item row="4" column="0">
<widget class="QLabel" name="selectMergeImageFileLabel">
<property name="text">
<string>合并文件</string>
</property>
</widget>
</item>
<item row="4" column="1">
<widget class="QLineEdit" name="selectMergeImageFileLineEdit"/>
</item>
<item row="1" column="2">
<widget class="QPushButton" name="delUnmergeImageFilePushButton">
<property name="text">
<string/>
</property>
</widget>
</item>
<item row="4" column="2">
<widget class="QPushButton" name="selectMergeImageFilePushButton">
<property name="text">
<string/>
</property>
</widget>
</item>
<item row="2" column="2">
<widget class="QPushButton" name="clearUnmergeImageFilePushButton">
<property name="text">
<string/>
</property>
</widget>
</item>
<item row="0" column="2">
<widget class="QPushButton" name="selectUnmergeImageFilePushButton">
<property name="text">
<string/>
</property>
</widget>
</item>
<item row="3" column="2">
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
<item row="0" column="0" rowspan="4" colspan="2">
<widget class="QTableWidget" name="tableWidget"/>
</item>
</layout>
</item>
<item>
<widget class="Line" name="line">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout">
<property name="topMargin">
<number>10</number>
</property>
<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="okPushButton">
<property name="text">
<string>确定</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="cancelPushButton">
<property name="text">
<string>取消</string>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer_2">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
</layout>
</widget>
<resources/>
<connections/>
</ui>

View File

@ -0,0 +1,105 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>ChartViewDialog</class>
<widget class="QDialog" name="ChartViewDialog">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>751</width>
<height>620</height>
</rect>
</property>
<property name="windowTitle">
<string>Dialog</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<property name="leftMargin">
<number>2</number>
</property>
<property name="topMargin">
<number>3</number>
</property>
<property name="rightMargin">
<number>2</number>
</property>
<property name="bottomMargin">
<number>2</number>
</property>
<item>
<layout class="QHBoxLayout" name="toolButtonHorizontalLayout">
<item>
<widget class="QPushButton" name="selectDataFilePushButton">
<property name="text">
<string/>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="saveChartPushButton">
<property name="text">
<string/>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="chartSettingPushButton">
<property name="text">
<string/>
</property>
</widget>
</item>
<item>
<spacer name="toolButtonHorizontalLayoutHorizontalSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
<item>
<widget class="QScrollArea" name="scrollArea">
<property name="widgetResizable">
<bool>true</bool>
</property>
<widget class="QWidget" name="scrollAreaWidgetContents">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>745</width>
<height>582</height>
</rect>
</property>
<layout class="QHBoxLayout" name="horizontalLayout_3">
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<layout class="QHBoxLayout" name="chartViewHorizontalLayout"/>
</item>
</layout>
</widget>
</widget>
</item>
</layout>
</widget>
<resources/>
<connections/>
</ui>

View File

@ -0,0 +1,319 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>DataScalerDialog</class>
<widget class="QDialog" name="DataScalerDialog">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>709</width>
<height>201</height>
</rect>
</property>
<property name="windowTitle">
<string>归一化/标准化</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout" stretch="1,0,0">
<property name="spacing">
<number>5</number>
</property>
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<layout class="QGridLayout" name="gridLayout">
<property name="leftMargin">
<number>10</number>
</property>
<property name="topMargin">
<number>10</number>
</property>
<property name="rightMargin">
<number>10</number>
</property>
<property name="bottomMargin">
<number>10</number>
</property>
<property name="horizontalSpacing">
<number>5</number>
</property>
<property name="verticalSpacing">
<number>15</number>
</property>
<item row="0" column="0">
<widget class="QLabel" name="dataFormatLabel">
<property name="text">
<string>数据格式:</string>
</property>
</widget>
</item>
<item row="1" column="1" colspan="7">
<widget class="QLineEdit" name="selectDataFileLineEdit"/>
</item>
<item row="1" column="8">
<widget class="QPushButton" name="selectDataFilePushButton">
<property name="text">
<string/>
</property>
</widget>
</item>
<item row="0" column="7">
<widget class="QRadioButton" name="isColMajorRadioButton">
<property name="text">
<string>列优先</string>
</property>
<property name="checked">
<bool>true</bool>
</property>
</widget>
</item>
<item row="0" column="6">
<spacer name="horizontalSpacer_3">
<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 row="0" column="5">
<widget class="QRadioButton" name="isRowMajorRadioButton">
<property name="text">
<string>行优先</string>
</property>
<property name="checked">
<bool>false</bool>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QCheckBox" name="isIncludeRowTitleCheckBox">
<property name="text">
<string>包含行标题</string>
</property>
<property name="checked">
<bool>true</bool>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QRadioButton" name="isMinMaxScalerRadioButton">
<property name="text">
<string>归一化</string>
</property>
<property name="checked">
<bool>false</bool>
</property>
</widget>
</item>
<item row="0" column="2">
<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 row="2" column="0">
<widget class="QLabel" name="preprocessingAlgorithmLabel">
<property name="maximumSize">
<size>
<width>16777215</width>
<height>16777215</height>
</size>
</property>
<property name="text">
<string>预处理方式:</string>
</property>
</widget>
</item>
<item row="0" column="4">
<spacer name="horizontalSpacer_2">
<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 row="1" column="0">
<widget class="QLabel" name="selectDataFileLabel">
<property name="maximumSize">
<size>
<width>16777215</width>
<height>16777215</height>
</size>
</property>
<property name="text">
<string>数据文件:</string>
</property>
</widget>
</item>
<item row="0" column="3">
<widget class="QCheckBox" name="isIncludeColTitleCheckBox">
<property name="text">
<string>包含列标题</string>
</property>
<property name="checked">
<bool>true</bool>
</property>
</widget>
</item>
<item row="4" column="4">
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
<item row="2" column="3">
<widget class="QRadioButton" name="isStandardScalerRadioButton">
<property name="text">
<string>标准化</string>
</property>
<property name="checked">
<bool>false</bool>
</property>
</widget>
</item>
<item row="2" column="5">
<widget class="QLabel" name="minMaxScalerRangeLabel">
<property name="text">
<string>最大/小值:</string>
</property>
</widget>
</item>
<item row="2" column="6" colspan="2">
<widget class="QLineEdit" name="minMaxScalerRangeLineEdit">
<property name="enabled">
<bool>false</bool>
</property>
<property name="text">
<string>0.0-1.0</string>
</property>
</widget>
</item>
<item row="3" column="0">
<widget class="QLabel" name="selectSaveDataFileLabel">
<property name="maximumSize">
<size>
<width>16777215</width>
<height>16777215</height>
</size>
</property>
<property name="text">
<string>数据文件:</string>
</property>
</widget>
</item>
<item row="3" column="8">
<widget class="QPushButton" name="selectSaveDataFilePushButton">
<property name="text">
<string/>
</property>
</widget>
</item>
<item row="3" column="1" colspan="7">
<widget class="QLineEdit" name="selectSaveDataFileLineEdit"/>
</item>
</layout>
</item>
<item>
<widget class="Line" name="line">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout">
<property name="spacing">
<number>5</number>
</property>
<property name="leftMargin">
<number>5</number>
</property>
<property name="topMargin">
<number>10</number>
</property>
<property name="rightMargin">
<number>5</number>
</property>
<property name="bottomMargin">
<number>5</number>
</property>
<item>
<spacer name="horizontalSpacer_4">
<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="okPushButton">
<property name="text">
<string>确定</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="cancelPushButton">
<property name="text">
<string>取消</string>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer_5">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
</layout>
</widget>
<resources/>
<connections/>
</ui>

View File

@ -0,0 +1,318 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>EmpiricalStatisticalModelDialog</class>
<widget class="QDialog" name="EmpiricalStatisticalModelDialog">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>796</width>
<height>353</height>
</rect>
</property>
<property name="windowTitle">
<string>经验统计模型</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QGroupBox" name="inSamplesGroupBox">
<property name="title">
<string>输入样本</string>
</property>
<layout class="QGridLayout" name="gridLayout_2">
<property name="verticalSpacing">
<number>10</number>
</property>
<item row="2" column="0">
<widget class="QLabel" name="selectTrainingSamplesLabel">
<property name="text">
<string>训练样本:</string>
</property>
</widget>
</item>
<item row="2" column="10">
<widget class="QPushButton" name="selectTrainingSamplesPushButton">
<property name="text">
<string/>
</property>
</widget>
</item>
<item row="3" column="0">
<widget class="QLabel" name="selectTestSamplesLabel">
<property name="text">
<string>测试样本(可选):</string>
</property>
</widget>
</item>
<item row="3" column="10">
<widget class="QPushButton" name="selectTestSamplesPushButton">
<property name="text">
<string/>
</property>
</widget>
</item>
<item row="2" column="2" colspan="7">
<widget class="QLineEdit" name="selectTrainingSamplesLineEdit"/>
</item>
<item row="3" column="2" colspan="7">
<widget class="QLineEdit" name="selectTestSamplesLineEdit"/>
</item>
<item row="0" column="5">
<spacer name="horizontalSpacer_3">
<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 row="0" column="3">
<spacer name="horizontalSpacer_2">
<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 row="0" column="0">
<widget class="QLabel" name="sampleTypeLabel">
<property name="text">
<string>样本文件类型:</string>
</property>
</widget>
</item>
<item row="0" column="2">
<widget class="QCheckBox" name="isIncludeRowTitleCheckBox">
<property name="text">
<string>包含行标题</string>
</property>
<property name="checked">
<bool>true</bool>
</property>
</widget>
</item>
<item row="0" column="4">
<widget class="QCheckBox" name="isIncludeColTitleCheckBox">
<property name="text">
<string>包含列标题</string>
</property>
<property name="checked">
<bool>true</bool>
</property>
</widget>
</item>
<item row="0" column="6">
<widget class="QRadioButton" name="isRowMajorRadioButton">
<property name="text">
<string>行优先</string>
</property>
<property name="checked">
<bool>true</bool>
</property>
</widget>
</item>
<item row="0" column="8">
<widget class="QRadioButton" name="isColMajorRadioButton">
<property name="text">
<string>列优先</string>
</property>
</widget>
</item>
<item row="0" column="7">
<spacer name="horizontalSpacer_4">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QGroupBox" name="paramsSettingGroupBox">
<property name="title">
<string>参数设置</string>
</property>
<layout class="QGridLayout" name="gridLayout" columnstretch="0,0,0,1">
<property name="verticalSpacing">
<number>10</number>
</property>
<item row="1" column="0" rowspan="4" colspan="2">
<widget class="QListWidget" name="unfittedEquationListWidget">
<item>
<property name="text">
<string>y = α * x + β</string>
</property>
</item>
<item>
<property name="text">
<string>y = α * x ** 2 + β * x + γ</string>
</property>
</item>
<item>
<property name="text">
<string>y = α * exp (β * x)</string>
</property>
</item>
<item>
<property name="text">
<string>y = α + β * log(x )</string>
</property>
</item>
<item>
<property name="text">
<string/>
</property>
</item>
</widget>
</item>
<item row="5" column="0">
<widget class="QLabel" name="customEquationLabel">
<property name="text">
<string>自定义方程:</string>
</property>
</widget>
</item>
<item row="5" column="1">
<widget class="QLineEdit" name="customEquationLineEdit"/>
</item>
<item row="0" column="0" colspan="2">
<widget class="QLabel" name="unfittedEquationLabel">
<property name="text">
<string>未拟合方程:</string>
</property>
</widget>
</item>
<item row="2" column="2">
<widget class="QPushButton" name="addEquationPushButton">
<property name="maximumSize">
<size>
<width>35</width>
<height>25</height>
</size>
</property>
<property name="text">
<string>&gt;</string>
</property>
</widget>
</item>
<item row="3" column="2">
<widget class="QPushButton" name="delEquationPushButton">
<property name="maximumSize">
<size>
<width>35</width>
<height>25</height>
</size>
</property>
<property name="text">
<string>&lt;</string>
</property>
</widget>
</item>
<item row="1" column="3" rowspan="5">
<widget class="QTableWidget" name="fittedEquationTableWidget">
<property name="selectionBehavior">
<enum>QAbstractItemView::SelectRows</enum>
</property>
<property name="rowCount">
<number>10</number>
</property>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<column>
<property name="text">
<string>待拟合方程</string>
</property>
</column>
<column>
<property name="text">
<string>初始化参数</string>
</property>
</column>
<item row="0" column="0">
<property name="text">
<string>y = α * x + β</string>
</property>
</item>
<item row="0" column="1">
<property name="text">
<string>10,10</string>
</property>
</item>
<item row="1" column="0">
<property name="text">
<string/>
</property>
</item>
<item row="1" column="1">
<property name="text">
<string/>
</property>
</item>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout">
<property name="topMargin">
<number>10</number>
</property>
<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="trainingTestPushButton">
<property name="text">
<string>训练/测试</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="cancelPushButton">
<property name="text">
<string>取消</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
<resources/>
<connections/>
</ui>

View File

@ -0,0 +1,315 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>EstimatorApplicationDialog</class>
<widget class="QDialog" name="EstimatorApplicationDialog">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>828</width>
<height>527</height>
</rect>
</property>
<property name="windowTitle">
<string>应用模型</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<property name="spacing">
<number>5</number>
</property>
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<layout class="QGridLayout" name="fileListGridLayout">
<property name="leftMargin">
<number>5</number>
</property>
<property name="topMargin">
<number>10</number>
</property>
<property name="rightMargin">
<number>5</number>
</property>
<property name="bottomMargin">
<number>10</number>
</property>
<property name="spacing">
<number>10</number>
</property>
<item row="0" column="7">
<spacer name="horizontalSpacer_6">
<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 row="0" column="4">
<widget class="QComboBox" name="outputFileTypeComboBox">
<item>
<property name="text">
<string>GeoTiff影像</string>
</property>
</item>
<item>
<property name="text">
<string>Excel表格数据</string>
</property>
</item>
</widget>
</item>
<item row="0" column="5">
<spacer name="horizontalSpacer_4">
<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 row="0" column="2">
<spacer name="horizontalSpacer_3">
<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 row="0" column="1">
<widget class="QComboBox" name="inputFileTypeComboBox">
<item>
<property name="text">
<string>GeoTiff影像</string>
</property>
</item>
<item>
<property name="text">
<string>Excel表格数据</string>
</property>
</item>
</widget>
</item>
<item row="0" column="6">
<widget class="QCheckBox" name="isUnifyFeaturesCheckBox">
<property name="text">
<string>统一特征</string>
</property>
<property name="checked">
<bool>true</bool>
</property>
</widget>
</item>
<item row="0" column="3">
<widget class="QLabel" name="outputFileTypeLabel">
<property name="text">
<string>输出类型:</string>
</property>
</widget>
</item>
<item row="0" column="0">
<widget class="QLabel" name="inputFileTypeLabel">
<property name="text">
<string>输入类型:</string>
</property>
</widget>
</item>
<item row="1" column="9">
<widget class="QPushButton" name="selectDataFilePushButton">
<property name="text">
<string/>
</property>
</widget>
</item>
<item row="2" column="9">
<widget class="QPushButton" name="delDataFilePushButton">
<property name="text">
<string/>
</property>
</widget>
</item>
<item row="3" column="9">
<widget class="QPushButton" name="clearDataFilePushButton">
<property name="text">
<string/>
</property>
</widget>
</item>
<item row="1" column="0" rowspan="4" colspan="9">
<widget class="QTableWidget" name="fileListTableWidget">
<property name="selectionBehavior">
<enum>QAbstractItemView::SelectRows</enum>
</property>
<property name="rowCount">
<number>20</number>
</property>
<property name="columnCount">
<number>2</number>
</property>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<column/>
<column/>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QGridLayout" name="gridLayout">
<property name="leftMargin">
<number>5</number>
</property>
<property name="topMargin">
<number>5</number>
</property>
<property name="rightMargin">
<number>5</number>
</property>
<property name="bottomMargin">
<number>10</number>
</property>
<property name="horizontalSpacing">
<number>5</number>
</property>
<property name="verticalSpacing">
<number>10</number>
</property>
<item row="1" column="0">
<widget class="QLabel" name="modelFileInfoLabel">
<property name="text">
<string>模型信息:</string>
</property>
</widget>
</item>
<item row="0" column="2">
<widget class="QPushButton" name="selectModelFilePushButton">
<property name="text">
<string/>
</property>
</widget>
</item>
<item row="0" column="0">
<widget class="QLabel" name="selectModelFileLabel">
<property name="text">
<string>模型文件:</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QLineEdit" name="selectModelFileLineEdit"/>
</item>
<item row="2" column="0" colspan="3">
<widget class="QTextBrowser" name="modelInfoTextBrowser">
<property name="styleSheet">
<string notr="true">background-color: rgba(240, 240, 240, 246);</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout">
<property name="spacing">
<number>5</number>
</property>
<property name="leftMargin">
<number>5</number>
</property>
<property name="topMargin">
<number>10</number>
</property>
<property name="rightMargin">
<number>5</number>
</property>
<property name="bottomMargin">
<number>10</number>
</property>
<item>
<widget class="QLabel" name="statusLogoLabel">
<property name="text">
<string/>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="statusTipLabel">
<property name="text">
<string/>
</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="okPushButton">
<property name="text">
<string>确定</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="cancelPushButton">
<property name="text">
<string>取消</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
<resources/>
<connections/>
</ui>

View File

@ -0,0 +1,359 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>FeatureCreatorDialog</class>
<widget class="QDialog" name="FeatureCreatorDialog">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>791</width>
<height>488</height>
</rect>
</property>
<property name="windowTitle">
<string>特征构建</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<property name="spacing">
<number>5</number>
</property>
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<layout class="QGridLayout" name="gridLayout">
<property name="leftMargin">
<number>10</number>
</property>
<property name="topMargin">
<number>10</number>
</property>
<property name="rightMargin">
<number>10</number>
</property>
<property name="bottomMargin">
<number>15</number>
</property>
<property name="horizontalSpacing">
<number>5</number>
</property>
<property name="verticalSpacing">
<number>15</number>
</property>
<item row="4" column="1">
<widget class="QCheckBox" name="isCalculateOneFeatureRatioQCheckBox">
<property name="text">
<string>单特征比值</string>
</property>
<property name="checked">
<bool>true</bool>
</property>
</widget>
</item>
<item row="4" column="5" colspan="3">
<widget class="QCheckBox" name="isMergeInitNewFeatureCheckBox">
<property name="text">
<string>合并原始特征和生成特征</string>
</property>
<property name="checked">
<bool>true</bool>
</property>
</widget>
</item>
<item row="0" column="5">
<widget class="QRadioButton" name="isRowMajorRadioButton">
<property name="text">
<string>行优先</string>
</property>
<property name="checked">
<bool>false</bool>
</property>
</widget>
</item>
<item row="6" column="1" colspan="8">
<widget class="QLineEdit" name="sensitiveFeatureLineEdit"/>
</item>
<item row="7" column="5">
<widget class="QLabel" name="customFeatureLabel">
<property name="text">
<string>自定义特征:</string>
</property>
</widget>
</item>
<item row="5" column="9" rowspan="2">
<widget class="QPushButton" name="applySensitiveFeaturePushButton">
<property name="maximumSize">
<size>
<width>40</width>
<height>35</height>
</size>
</property>
<property name="text">
<string>应用</string>
</property>
</widget>
</item>
<item row="9" column="0">
<widget class="QLabel" name="selectSaveFeatureLabel">
<property name="text">
<string>保存特征:</string>
</property>
</widget>
</item>
<item row="0" column="7">
<widget class="QRadioButton" name="isColMajorRadioButton">
<property name="text">
<string>列优先</string>
</property>
<property name="checked">
<bool>true</bool>
</property>
</widget>
</item>
<item row="9" column="1" colspan="8">
<widget class="QLineEdit" name="selectSaveFeatureLineEdit"/>
</item>
<item row="5" column="1" colspan="8">
<widget class="QLineEdit" name="initializationFeatureLineEdit"/>
</item>
<item row="0" column="3">
<widget class="QCheckBox" name="isIncludeColTitleCheckBox">
<property name="text">
<string>包含列标题</string>
</property>
<property name="checked">
<bool>true</bool>
</property>
</widget>
</item>
<item row="6" column="0">
<widget class="QLabel" name="sensitiveFeatureLabel">
<property name="text">
<string>敏感特征:</string>
</property>
</widget>
</item>
<item row="1" column="1" colspan="8">
<widget class="QLineEdit" name="selectOpenAllSamplesLineEdit"/>
</item>
<item row="4" column="3">
<widget class="QCheckBox" name="isCalculateTwoFeatureSumDifferenceRatioQCheckBox">
<property name="text">
<string>双特征和差比值</string>
</property>
<property name="checked">
<bool>true</bool>
</property>
</widget>
</item>
<item row="9" column="9">
<widget class="QPushButton" name="selectSaveFeaturePushButton">
<property name="text">
<string/>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QCheckBox" name="isIncludeRowTitleCheckBox">
<property name="text">
<string>包含行标题</string>
</property>
<property name="checked">
<bool>true</bool>
</property>
</widget>
</item>
<item row="5" column="0">
<widget class="QLabel" name="initializationFeatureLabel">
<property name="maximumSize">
<size>
<width>60</width>
<height>50</height>
</size>
</property>
<property name="text">
<string>原始特征:</string>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="selectOpenAllSamplesLabel">
<property name="text">
<string>样本总体:</string>
</property>
</widget>
</item>
<item row="0" column="4">
<spacer name="horizontalSpacer_2">
<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 row="0" column="8">
<spacer name="horizontalSpacer_4">
<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 row="0" column="2">
<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 row="0" column="6">
<spacer name="horizontalSpacer_3">
<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 row="2" column="0" colspan="10">
<layout class="QHBoxLayout" name="horizontalLayout_2">
<property name="spacing">
<number>5</number>
</property>
<property name="topMargin">
<number>5</number>
</property>
<property name="bottomMargin">
<number>5</number>
</property>
<item>
<widget class="Line" name="line_2">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
</layout>
</item>
<item row="1" column="9">
<widget class="QPushButton" name="selectOpenAllSamplesPushButton">
<property name="text">
<string/>
</property>
</widget>
</item>
<item row="8" column="5" colspan="5">
<widget class="QPlainTextEdit" name="customFeaturePlainTextEdit"/>
</item>
<item row="8" column="0" colspan="5">
<widget class="QListWidget" name="generationFeatureListWidget"/>
</item>
<item row="7" column="0" colspan="2">
<widget class="QLabel" name="generationFeatureLabel">
<property name="text">
<string>生成特征:</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<widget class="Line" name="line">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout">
<property name="spacing">
<number>5</number>
</property>
<property name="leftMargin">
<number>10</number>
</property>
<property name="topMargin">
<number>5</number>
</property>
<property name="rightMargin">
<number>10</number>
</property>
<property name="bottomMargin">
<number>5</number>
</property>
<item>
<spacer name="horizontalSpacer_5">
<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="okPushButton">
<property name="text">
<string>确定</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="cancelPushButton">
<property name="text">
<string>取消</string>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer_6">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
</layout>
</widget>
<resources/>
<connections/>
</ui>

View File

@ -0,0 +1,360 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>FeatureSelectorDialog</class>
<widget class="QDialog" name="FeatureSelectorDialog">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>1028</width>
<height>678</height>
</rect>
</property>
<property name="windowTitle">
<string>特征选择</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout" stretch="0,0,0,1">
<property name="spacing">
<number>5</number>
</property>
<property name="leftMargin">
<number>5</number>
</property>
<property name="topMargin">
<number>10</number>
</property>
<property name="rightMargin">
<number>5</number>
</property>
<property name="bottomMargin">
<number>5</number>
</property>
<item>
<layout class="QGridLayout" name="gridLayout">
<property name="horizontalSpacing">
<number>5</number>
</property>
<property name="verticalSpacing">
<number>10</number>
</property>
<item row="0" column="0">
<widget class="QLabel" name="dataFormatLabel">
<property name="text">
<string>数据格式:</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QCheckBox" name="isIncludeRowTitleCheckBox">
<property name="text">
<string>包含行标题</string>
</property>
<property name="checked">
<bool>true</bool>
</property>
</widget>
</item>
<item row="0" column="2">
<spacer name="horizontalSpacer_3">
<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 row="0" column="3">
<widget class="QCheckBox" name="isIncludeColTitleCheckBox">
<property name="text">
<string>包含列标题</string>
</property>
<property name="checked">
<bool>true</bool>
</property>
</widget>
</item>
<item row="0" column="4">
<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 row="0" column="5">
<widget class="QRadioButton" name="isRowMajorRadioButton">
<property name="text">
<string>行优先</string>
</property>
</widget>
</item>
<item row="0" column="6">
<spacer name="horizontalSpacer_2">
<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 row="0" column="7">
<widget class="QRadioButton" name="isColMajorRadioButton">
<property name="text">
<string>列优先</string>
</property>
<property name="checked">
<bool>true</bool>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="significanceStandardLabel">
<property name="text">
<string>显著性标准:</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QCheckBox" name="isCalculateVarianceCheckBox">
<property name="text">
<string>特征方差</string>
</property>
<property name="checked">
<bool>true</bool>
</property>
</widget>
</item>
<item row="1" column="3">
<widget class="QCheckBox" name="isCalculatePearsonCorrCoefCheckBox">
<property name="text">
<string>皮尔逊相关系数</string>
</property>
<property name="checked">
<bool>true</bool>
</property>
</widget>
</item>
<item row="1" column="5">
<widget class="QCheckBox" name="isCalculateDistanceCorrCoefCheckBox">
<property name="text">
<string>距离相关系数</string>
</property>
<property name="checked">
<bool>true</bool>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QLabel" name="selectOpenDataFileLabel">
<property name="text">
<string>数据文件:</string>
</property>
</widget>
</item>
<item row="2" column="8">
<widget class="QPushButton" name="selectOpenDataFilePushButton">
<property name="text">
<string/>
</property>
</widget>
</item>
<item row="2" column="1" colspan="7">
<widget class="QLineEdit" name="selectOpenDataFileLineEdit"/>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout">
<property name="spacing">
<number>5</number>
</property>
<property name="topMargin">
<number>10</number>
</property>
<property name="bottomMargin">
<number>10</number>
</property>
<item>
<widget class="Line" name="line">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QGridLayout" name="gridLayout_2">
<property name="bottomMargin">
<number>10</number>
</property>
<property name="horizontalSpacing">
<number>5</number>
</property>
<property name="verticalSpacing">
<number>10</number>
</property>
<item row="1" column="0">
<widget class="QLabel" name="selectSaveSalientFeatureLabel">
<property name="text">
<string>保存显著特征:</string>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QLabel" name="selectSaveSignificanceChartLabel">
<property name="text">
<string>显著性图表:</string>
</property>
</widget>
</item>
<item row="2" column="9">
<widget class="QPushButton" name="selectSaveSignificanceChartPushButton">
<property name="enabled">
<bool>false</bool>
</property>
<property name="text">
<string/>
</property>
</widget>
</item>
<item row="0" column="0">
<widget class="QLabel" name="selectSalientFeatureLabel">
<property name="text">
<string>显著特征:</string>
</property>
</widget>
</item>
<item row="0" column="1" colspan="2">
<widget class="QComboBox" name="selectSalientFeatureComboBox"/>
</item>
<item row="1" column="9">
<widget class="QPushButton" name="selectSaveSalientFeaturePushButton">
<property name="text">
<string/>
</property>
</widget>
</item>
<item row="1" column="1" colspan="8">
<widget class="QLineEdit" name="selectSaveSalientFeatureLineEdit"/>
</item>
<item row="2" column="1" colspan="8">
<widget class="QLineEdit" name="selectSaveSignificanceChartLineEdit">
<property name="enabled">
<bool>false</bool>
</property>
</widget>
</item>
<item row="0" column="4">
<widget class="QCheckBox" name="isSaveSignificanceInfoCheckBox">
<property name="text">
<string>保留显著性信息</string>
</property>
<property name="checked">
<bool>true</bool>
</property>
</widget>
</item>
<item row="0" column="6">
<spacer name="horizontalSpacer_6">
<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 row="0" column="3">
<spacer name="horizontalSpacer_4">
<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 row="0" column="7">
<spacer name="horizontalSpacer_7">
<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 row="0" column="5">
<spacer name="horizontalSpacer_5">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
<item>
<widget class="QGroupBox" name="groupBox">
<property name="title">
<string/>
</property>
<layout class="QHBoxLayout" name="horizontalLayout_3">
<property name="spacing">
<number>0</number>
</property>
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<layout class="QHBoxLayout" name="significanceCharHorizontalLayout">
<property name="spacing">
<number>5</number>
</property>
</layout>
</item>
</layout>
</widget>
</item>
</layout>
</widget>
<resources/>
<connections/>
</ui>

View File

@ -0,0 +1,357 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>FormulaApplicationDialog</class>
<widget class="QDialog" name="FormulaApplicationDialog">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>828</width>
<height>526</height>
</rect>
</property>
<property name="windowTitle">
<string>应用方程</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<property name="spacing">
<number>0</number>
</property>
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<layout class="QGridLayout" name="fileListGridLayout">
<property name="leftMargin">
<number>5</number>
</property>
<property name="topMargin">
<number>10</number>
</property>
<property name="rightMargin">
<number>5</number>
</property>
<property name="bottomMargin">
<number>10</number>
</property>
<property name="spacing">
<number>10</number>
</property>
<item row="0" column="1">
<widget class="QComboBox" name="inputFileTypeComboBox">
<item>
<property name="text">
<string>GeoTiff影像</string>
</property>
</item>
<item>
<property name="text">
<string>Excel表格数据</string>
</property>
</item>
</widget>
</item>
<item row="0" column="0">
<widget class="QLabel" name="inputFileTypeLabel">
<property name="text">
<string>输入类型:</string>
</property>
</widget>
</item>
<item row="3" column="7">
<widget class="QPushButton" name="clearDataFilePushButton">
<property name="text">
<string/>
</property>
</widget>
</item>
<item row="2" column="7">
<widget class="QPushButton" name="delDataFilePushButton">
<property name="text">
<string/>
</property>
</widget>
</item>
<item row="1" column="0" rowspan="4" colspan="7">
<widget class="QTableWidget" name="fileListTableWidget">
<property name="selectionBehavior">
<enum>QAbstractItemView::SelectRows</enum>
</property>
<property name="rowCount">
<number>20</number>
</property>
<property name="columnCount">
<number>2</number>
</property>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<column/>
<column/>
</widget>
</item>
<item row="0" column="4">
<widget class="QComboBox" name="outputFileTypeComboBox">
<item>
<property name="text">
<string>GeoTiff影像</string>
</property>
</item>
<item>
<property name="text">
<string>Excel表格数据</string>
</property>
</item>
</widget>
</item>
<item row="0" column="3">
<widget class="QLabel" name="outputFileTypeLabel">
<property name="text">
<string>输出类型:</string>
</property>
</widget>
</item>
<item row="0" column="2">
<spacer name="horizontalSpacer_3">
<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 row="1" column="7">
<widget class="QPushButton" name="selectDataFilePushButton">
<property name="text">
<string/>
</property>
</widget>
</item>
<item row="0" column="5">
<spacer name="horizontalSpacer_6">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
<item>
<layout class="QGridLayout" name="gridLayout">
<property name="leftMargin">
<number>5</number>
</property>
<property name="topMargin">
<number>5</number>
</property>
<property name="rightMargin">
<number>5</number>
</property>
<property name="bottomMargin">
<number>10</number>
</property>
<property name="horizontalSpacing">
<number>5</number>
</property>
<property name="verticalSpacing">
<number>10</number>
</property>
<item row="0" column="1">
<widget class="QLineEdit" name="inputFormulaLineEdit"/>
</item>
<item row="0" column="0">
<widget class="QLabel" name="inputFormulaLabel">
<property name="text">
<string>计算方程:</string>
</property>
</widget>
</item>
<item row="0" column="2">
<widget class="QPushButton" name="checkFormulaPushButton">
<property name="text">
<string/>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="variableSettingLabel">
<property name="text">
<string>变量设置:</string>
</property>
</widget>
</item>
<item row="3" column="2">
<widget class="QPushButton" name="clearVarPushButton">
<property name="text">
<string/>
</property>
</widget>
</item>
<item row="2" column="2">
<widget class="QPushButton" name="delVarPushButton">
<property name="text">
<string/>
</property>
</widget>
</item>
<item row="4" column="2">
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
<item row="2" column="0" rowspan="3" colspan="2">
<widget class="QTableWidget" name="variableSettingTableWidget">
<property name="selectionBehavior">
<enum>QAbstractItemView::SelectRows</enum>
</property>
<property name="rowCount">
<number>20</number>
</property>
<property name="columnCount">
<number>2</number>
</property>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<column/>
<column/>
</widget>
</item>
</layout>
</item>
<item>
<widget class="Line" name="line">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout">
<property name="spacing">
<number>5</number>
</property>
<property name="leftMargin">
<number>5</number>
</property>
<property name="topMargin">
<number>10</number>
</property>
<property name="rightMargin">
<number>5</number>
</property>
<property name="bottomMargin">
<number>10</number>
</property>
<item>
<widget class="QProgressBar" name="statusProgressBar">
<property name="styleSheet">
<string notr="true">text-align: Center;color: rgb(0, 0, 0);font-weight: bold</string>
</property>
<property name="value">
<number>0</number>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="statusTipLabel">
<property name="text">
<string/>
</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="okPushButton">
<property name="text">
<string>确定</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="cancelPushButton">
<property name="text">
<string>取消</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
<resources/>
<connections/>
</ui>

View File

@ -0,0 +1,358 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>GeoserverWMSPublisherDialog</class>
<widget class="QDialog" name="GeoserverWMSPublisherDialog">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>872</width>
<height>392</height>
</rect>
</property>
<property name="windowTitle">
<string>WMS服务发布</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout" stretch="1,0">
<property name="spacing">
<number>10</number>
</property>
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_2" stretch="0,1">
<property name="spacing">
<number>10</number>
</property>
<property name="leftMargin">
<number>10</number>
</property>
<property name="topMargin">
<number>5</number>
</property>
<property name="rightMargin">
<number>10</number>
</property>
<property name="bottomMargin">
<number>5</number>
</property>
<item>
<widget class="QGroupBox" name="userInfoGroupBox">
<property name="title">
<string>用户信息</string>
</property>
<layout class="QGridLayout" name="gridLayout_2">
<item row="0" column="1" colspan="3">
<widget class="QLineEdit" name="usernameLineEdit"/>
</item>
<item row="2" column="1" colspan="3">
<widget class="QLineEdit" name="portLineEdit"/>
</item>
<item row="3" column="1">
<spacer name="horizontalSpacer_3">
<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 row="1" column="1" colspan="3">
<widget class="QLineEdit" name="passwordLineEdit"/>
</item>
<item row="3" column="2">
<widget class="QPushButton" name="loginPushButton">
<property name="text">
<string>登录</string>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="passwordLabel">
<property name="text">
<string>密码:</string>
</property>
</widget>
</item>
<item row="3" column="3">
<widget class="QPushButton" name="logoutPushButton">
<property name="enabled">
<bool>false</bool>
</property>
<property name="text">
<string>注销</string>
</property>
</widget>
</item>
<item row="0" column="0">
<widget class="QLabel" name="usernameLabel">
<property name="text">
<string>用户名:</string>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QLabel" name="portLabel">
<property name="text">
<string>端口:</string>
</property>
</widget>
</item>
<item row="4" column="1">
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QGroupBox" name="paramsSettingGroupBox">
<property name="title">
<string>参数设置</string>
</property>
<layout class="QGridLayout" name="gridLayout">
<item row="3" column="0">
<widget class="QCheckBox" name="isCreateNewDataStoreCheckBox">
<property name="enabled">
<bool>false</bool>
</property>
<property name="text">
<string>创建新的数据存储</string>
</property>
</widget>
</item>
<item row="0" column="0">
<widget class="QLabel" name="dataTypeLabel">
<property name="text">
<string>数据类型:</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QRadioButton" name="rasterFileRadioButton">
<property name="text">
<string>栅格文件</string>
</property>
<property name="checked">
<bool>true</bool>
</property>
</widget>
</item>
<item row="9" column="0">
<widget class="QLabel" name="layerNameLabel">
<property name="text">
<string>图层名称:</string>
</property>
</widget>
</item>
<item row="6" column="4" colspan="2">
<widget class="QLineEdit" name="newStyleNameLineEdit">
<property name="enabled">
<bool>false</bool>
</property>
</widget>
</item>
<item row="5" column="0">
<widget class="QCheckBox" name="isCreateNewStyleCheckBox">
<property name="text">
<string>创建新的样式</string>
</property>
</widget>
</item>
<item row="6" column="0">
<widget class="QLabel" name="styleNameLabel">
<property name="text">
<string>样式名称:</string>
</property>
</widget>
</item>
<item row="8" column="7">
<widget class="QPushButton" name="selectStyleFilePushButton">
<property name="text">
<string/>
</property>
</widget>
</item>
<item row="4" column="0">
<widget class="QLabel" name="dataStoreLabel">
<property name="enabled">
<bool>false</bool>
</property>
<property name="text">
<string>数据存储:</string>
</property>
</widget>
</item>
<item row="4" column="1" colspan="3">
<widget class="QComboBox" name="dataStoreNameComboBox">
<property name="enabled">
<bool>false</bool>
</property>
</widget>
</item>
<item row="2" column="1" colspan="3">
<widget class="QComboBox" name="workspaceNameComboBox"/>
</item>
<item row="1" column="0">
<widget class="QCheckBox" name="isCreateNewWorkspaceCheckBox">
<property name="text">
<string>创建新的工作空间</string>
</property>
<property name="checked">
<bool>false</bool>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QLabel" name="workspaceNameLabel">
<property name="text">
<string>工作空间:</string>
</property>
</widget>
</item>
<item row="7" column="7">
<widget class="QPushButton" name="selectDataFilePushButton">
<property name="text">
<string/>
</property>
</widget>
</item>
<item row="8" column="0">
<widget class="QLabel" name="selectStyleFileLabel">
<property name="text">
<string>样式文件:</string>
</property>
</widget>
</item>
<item row="7" column="0">
<widget class="QLabel" name="selectDataFileLabel">
<property name="text">
<string>数据文件:</string>
</property>
</widget>
</item>
<item row="6" column="1" colspan="3">
<widget class="QComboBox" name="styleNameComboBox"/>
</item>
<item row="2" column="4" colspan="2">
<widget class="QLineEdit" name="newWorkspaceNameLineEdit">
<property name="enabled">
<bool>false</bool>
</property>
</widget>
</item>
<item row="4" column="4" colspan="2">
<widget class="QLineEdit" name="dataStoreNameLineEdit">
<property name="enabled">
<bool>false</bool>
</property>
</widget>
</item>
<item row="0" column="3">
<widget class="QRadioButton" name="vectorFileRadioButton">
<property name="text">
<string>矢量文件</string>
</property>
</widget>
</item>
<item row="6" column="6">
<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 row="7" column="1" colspan="6">
<widget class="QLineEdit" name="selectDataFileLineEdit"/>
</item>
<item row="8" column="1" colspan="6">
<widget class="QLineEdit" name="selectStyleFileLineEdit"/>
</item>
<item row="9" column="1" colspan="6">
<widget class="QLineEdit" name="layerNameLineEdit"/>
</item>
</layout>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout">
<property name="spacing">
<number>5</number>
</property>
<property name="leftMargin">
<number>10</number>
</property>
<property name="topMargin">
<number>5</number>
</property>
<property name="rightMargin">
<number>10</number>
</property>
<property name="bottomMargin">
<number>5</number>
</property>
<item>
<spacer name="horizontalSpacer_2">
<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="okPushButton">
<property name="text">
<string>确定</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="cancelPushButton">
<property name="text">
<string>取消</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
<resources/>
<connections/>
</ui>

View File

@ -0,0 +1,354 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>ImageFusionSTARFMDialog</class>
<widget class="QDialog" name="ImageFusionSTARFMDialog">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>880</width>
<height>465</height>
</rect>
</property>
<property name="windowTitle">
<string>STARFM图像融合</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_2">
<item>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QGroupBox" name="groupBox_2">
<property name="title">
<string>Tk时刻影像对</string>
</property>
<layout class="QGridLayout" name="gridLayout_3">
<item row="0" column="0">
<widget class="QLabel" name="openTkCoarseResolutionImageLabel">
<property name="text">
<string>Tk输入低分影像</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QLineEdit" name="openTkCoarseResolutionImageLineEdit"/>
</item>
<item row="0" column="2">
<widget class="QPushButton" name="openTkCoarseResolutionImagePushButton">
<property name="text">
<string/>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="openTkFineResolutionImageLabel">
<property name="text">
<string>Tk输入高分影像</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QLineEdit" name="openTkFineResolutionImageLineEdit"/>
</item>
<item row="1" column="2">
<widget class="QPushButton" name="openTkFineResolutionImagePushButton">
<property name="text">
<string/>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QGroupBox" name="groupBox">
<property name="title">
<string>T0时刻影像对</string>
</property>
<layout class="QGridLayout" name="gridLayout_2">
<item row="0" column="0">
<widget class="QLabel" name="openT0CoarseResolutionImageLabel">
<property name="text">
<string>T0输入低分影像</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QLineEdit" name="openT0CoarseResolutionImageLineEdit"/>
</item>
<item row="0" column="2">
<widget class="QPushButton" name="openT0CoarseResolutionImagePushButton">
<property name="text">
<string/>
</property>
</widget>
</item>
</layout>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_2">
<item>
<widget class="QGroupBox" name="statusGroupBox">
<property name="title">
<string>参数得分图表</string>
</property>
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QTextEdit" name="statusTextEdit"/>
</item>
<item>
<widget class="QGroupBox" name="parametersSettingsGroupBox">
<property name="title">
<string>参数设置</string>
</property>
<layout class="QGridLayout" name="gridLayout">
<item row="6" column="0" colspan="2">
<widget class="QLabel" name="selectT0FineResolutionImageSaveDirLabel">
<property name="text">
<string>T0拟合高分影像保存路径</string>
</property>
</widget>
</item>
<item row="5" column="0">
<widget class="QLabel" name="windowSizeLabel">
<property name="text">
<string>窗口尺寸:</string>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="constantSLabel">
<property name="text">
<string>系数S</string>
</property>
</widget>
</item>
<item row="7" column="7">
<widget class="QPushButton" name="selectT0FineResolutionImageSaveDirPushButton">
<property name="text">
<string/>
</property>
</widget>
</item>
<item row="7" column="0" colspan="7">
<widget class="QLineEdit" name="selectT0FineResolutionImageSaveDirLineEdit"/>
</item>
<item row="1" column="3">
<widget class="QLineEdit" name="stopConstantSLineEdit">
<property name="text">
<string>1.0</string>
</property>
</widget>
</item>
<item row="4" column="0">
<widget class="QLabel" name="constantALabel">
<property name="text">
<string>系数A</string>
</property>
</widget>
</item>
<item row="3" column="3">
<widget class="QLineEdit" name="stopConstantDLineEdit">
<property name="text">
<string>1.0</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QLineEdit" name="startConstantSLineEdit">
<property name="text">
<string>1.0</string>
</property>
</widget>
</item>
<item row="4" column="3">
<widget class="QLineEdit" name="stopConstantALineEdit">
<property name="text">
<string>1.0</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QLabel" name="startLabel">
<property name="text">
<string>起始值</string>
</property>
</widget>
</item>
<item row="5" column="3">
<widget class="QLineEdit" name="stopWindowSizeLineEdit">
<property name="text">
<string>19</string>
</property>
</widget>
</item>
<item row="1" column="5" colspan="2">
<widget class="QLineEdit" name="stepConstantSLineEdit">
<property name="text">
<string>1.0</string>
</property>
</widget>
</item>
<item row="3" column="5" colspan="2">
<widget class="QLineEdit" name="stepConstantDLineEdit">
<property name="text">
<string>1.0</string>
</property>
</widget>
</item>
<item row="5" column="1">
<widget class="QLineEdit" name="startWindowSizeLineEdit">
<property name="text">
<string>15</string>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QLabel" name="constantTLabel">
<property name="text">
<string>系数T</string>
</property>
</widget>
</item>
<item row="4" column="1">
<widget class="QLineEdit" name="startConstantALineEdit">
<property name="text">
<string>1.0</string>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QLineEdit" name="startConstantTLineEdit">
<property name="text">
<string>1.0</string>
</property>
</widget>
</item>
<item row="2" column="3">
<widget class="QLineEdit" name="stepConstantTLineEdit_2">
<property name="text">
<string>1.0</string>
</property>
</widget>
</item>
<item row="2" column="5" colspan="2">
<widget class="QLineEdit" name="stepConstantTLineEdit">
<property name="text">
<string>1.0</string>
</property>
</widget>
</item>
<item row="4" column="5" colspan="2">
<widget class="QLineEdit" name="stepConstantALineEdit">
<property name="text">
<string>1.0</string>
</property>
</widget>
</item>
<item row="3" column="0">
<widget class="QLabel" name="constantDLabel">
<property name="text">
<string>系数D</string>
</property>
</widget>
</item>
<item row="3" column="1">
<widget class="QLineEdit" name="startConstantDLineEdit">
<property name="text">
<string>1.0</string>
</property>
</widget>
</item>
<item row="0" column="3">
<widget class="QLabel" name="stopLabel">
<property name="text">
<string>终止值</string>
</property>
</widget>
</item>
<item row="5" column="5" colspan="2">
<widget class="QLineEdit" name="stepWindowSizeLineEdit">
<property name="text">
<string>2</string>
</property>
</widget>
</item>
<item row="0" column="2">
<spacer name="horizontalSpacer_2">
<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 row="0" column="5">
<widget class="QLabel" name="stepLabel">
<property name="text">
<string>取值间隔</string>
</property>
</widget>
</item>
<item row="0" column="4">
<spacer name="horizontalSpacer_3">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
</item>
</layout>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_3">
<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="okPushButton">
<property name="text">
<string>确定</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="cancelPushButton">
<property name="text">
<string>取消</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
<resources/>
<connections/>
</ui>

View File

@ -0,0 +1,196 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>MainWindow</class>
<widget class="QMainWindow" name="MainWindow">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>402</width>
<height>676</height>
</rect>
</property>
<property name="windowTitle">
<string>iPyGIRS V0.2.3</string>
</property>
<widget class="QWidget" name="centralwidget">
<layout class="QHBoxLayout" name="horizontalLayout">
<property name="spacing">
<number>5</number>
</property>
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="QTreeWidget" name="toolBoxTreeWidget">
<property name="headerHidden">
<bool>true</bool>
</property>
<column>
<property name="text">
<string notr="true">1</string>
</property>
</column>
<item>
<property name="text">
<string>数据管理</string>
</property>
<item>
<property name="text">
<string>创建样本</string>
</property>
</item>
<item>
<property name="text">
<string>预处理</string>
</property>
<item>
<property name="text">
<string>归一化/标准化</string>
</property>
</item>
</item>
<item>
<property name="text">
<string>特征处理</string>
</property>
<item>
<property name="text">
<string>特征构建</string>
</property>
</item>
<item>
<property name="text">
<string>特征选择</string>
</property>
</item>
</item>
</item>
<item>
<property name="text">
<string>数理统计</string>
</property>
<item>
<property name="text">
<string>经验统计模型</string>
</property>
</item>
<item>
<property name="text">
<string>应用方程</string>
</property>
</item>
</item>
<item>
<property name="text">
<string>地理处理</string>
</property>
<item>
<property name="text">
<string>像元值提取</string>
</property>
</item>
</item>
<item>
<property name="text">
<string>栅格数据</string>
</property>
<item>
<property name="text">
<string>波段计算器</string>
</property>
</item>
<item>
<property name="text">
<string>波段分离(当前版本不可用)</string>
</property>
</item>
<item>
<property name="text">
<string>波段合并(当前版本不可用)</string>
</property>
</item>
<item>
<property name="text">
<string>图像平滑(当前版本不可用)</string>
</property>
<item>
<property name="text">
<string>移动平均平滑(当前版本不可用)</string>
</property>
</item>
</item>
<item>
<property name="text">
<string>图像融合(当前版本不可用)</string>
</property>
<item>
<property name="text">
<string>STARFM融合</string>
</property>
</item>
</item>
</item>
<item>
<property name="text">
<string>机器学习</string>
</property>
<item>
<property name="text">
<string>scikit-learn机器学习</string>
</property>
</item>
<item>
<property name="text">
<string>TPOT机器学习当前版本不可用</string>
</property>
</item>
<item>
<property name="text">
<string>应用模型</string>
</property>
</item>
</item>
<item>
<property name="text">
<string>数据库</string>
</property>
<item>
<property name="text">
<string>MySQL数据库管理</string>
</property>
</item>
</item>
<item>
<property name="text">
<string>地图服务</string>
</property>
<item>
<property name="text">
<string>Geoserver工具</string>
</property>
<item>
<property name="text">
<string>WMS服务发布</string>
</property>
</item>
</item>
</item>
</widget>
</item>
</layout>
</widget>
<widget class="QStatusBar" name="statusBar"/>
</widget>
<resources/>
<connections/>
</ui>

View File

@ -0,0 +1,565 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>MySQLDatabaseManagementDialog</class>
<widget class="QDialog" name="MySQLDatabaseManagementDialog">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>872</width>
<height>810</height>
</rect>
</property>
<property name="windowTitle">
<string>MySQL数据库管理</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout" stretch="1,0,2">
<item>
<widget class="QGroupBox" name="databaseSettingGroupBox">
<property name="title">
<string>数据库设置</string>
</property>
<layout class="QGridLayout" name="databaseSettingGridLayout">
<property name="verticalSpacing">
<number>10</number>
</property>
<item row="1" column="1" colspan="6">
<widget class="QLineEdit" name="databaseLoginPasswordLineEdit">
<property name="echoMode">
<enum>QLineEdit::Password</enum>
</property>
</widget>
</item>
<item row="5" column="0">
<widget class="QLabel" name="dataTableLabelInfoLabel">
<property name="maximumSize">
<size>
<width>80</width>
<height>16777215</height>
</size>
</property>
<property name="text">
<string>数据表信息:</string>
</property>
</widget>
</item>
<item row="0" column="1" colspan="6">
<widget class="QLineEdit" name="databaseUserNameLineEdit"/>
</item>
<item row="0" column="0">
<widget class="QLabel" name="databaseUserNameLabel">
<property name="text">
<string>用户名:</string>
</property>
</widget>
</item>
<item row="4" column="4">
<widget class="QLabel" name="selectDataTableLabel">
<property name="maximumSize">
<size>
<width>50</width>
<height>16777215</height>
</size>
</property>
<property name="text">
<string>数据表:</string>
</property>
</widget>
</item>
<item row="4" column="1" colspan="2">
<widget class="QComboBox" name="selectDatabaseComboBox"/>
</item>
<item row="4" column="0">
<widget class="QLabel" name="selectDatabaseLabel">
<property name="maximumSize">
<size>
<width>80</width>
<height>16777215</height>
</size>
</property>
<property name="text">
<string>数据库:</string>
</property>
</widget>
</item>
<item row="1" column="0" rowspan="2">
<widget class="QLabel" name="databaseLoginPasswordLabel">
<property name="text">
<string>密码:</string>
</property>
</widget>
</item>
<item row="6" column="0">
<spacer name="verticalSpacer_3">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>81</width>
<height>123</height>
</size>
</property>
</spacer>
</item>
<item row="4" column="5" colspan="2">
<widget class="QComboBox" name="selectDataTableLabelComboBox"/>
</item>
<item row="0" column="7" rowspan="2">
<widget class="QPushButton" name="connectDatabasePushButton">
<property name="maximumSize">
<size>
<width>80</width>
<height>40</height>
</size>
</property>
<property name="text">
<string>连接</string>
</property>
</widget>
</item>
<item row="4" column="3">
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Fixed</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item row="5" column="1" rowspan="2" colspan="6">
<widget class="QTreeWidget" name="dataTableInfoTreeWidget">
<column>
<property name="text">
<string>字段名称</string>
</property>
</column>
<column>
<property name="text">
<string>数据类型</string>
</property>
</column>
<column>
<property name="text">
<string>记录数</string>
</property>
</column>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QGroupBox" name="geoserverSettingGroupBox">
<property name="title">
<string>Geoserver设置</string>
</property>
<layout class="QGridLayout" name="gridLayout_2">
<property name="verticalSpacing">
<number>10</number>
</property>
<item row="3" column="2">
<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>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item row="3" column="6">
<widget class="QLabel" name="selectRenderLayerLabel">
<property name="maximumSize">
<size>
<width>60</width>
<height>16777215</height>
</size>
</property>
<property name="text">
<string>渲染图层:</string>
</property>
</widget>
</item>
<item row="3" column="1">
<widget class="QComboBox" name="selectWorkspaceComboBox"/>
</item>
<item row="0" column="0">
<widget class="QLabel" name="geoserverUserNameLabel">
<property name="text">
<string>用户名:</string>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QLabel" name="dataTypeLabel">
<property name="text">
<string>数据类型:</string>
</property>
</widget>
</item>
<item row="3" column="3">
<widget class="QLabel" name="selectDatastoreLabel">
<property name="enabled">
<bool>false</bool>
</property>
<property name="maximumSize">
<size>
<width>60</width>
<height>16777215</height>
</size>
</property>
<property name="text">
<string>数据存储:</string>
</property>
</widget>
</item>
<item row="3" column="4">
<widget class="QComboBox" name="selectDatastoreComboBox">
<property name="enabled">
<bool>false</bool>
</property>
</widget>
</item>
<item row="1" column="1" colspan="7">
<widget class="QLineEdit" name="geoserverLoginPasswordLineEdit">
<property name="echoMode">
<enum>QLineEdit::Password</enum>
</property>
</widget>
</item>
<item row="3" column="7">
<widget class="QComboBox" name="selectRenderLayerComboBox"/>
</item>
<item row="1" column="0">
<widget class="QLabel" name="geoserverLoginPasswordLabel">
<property name="text">
<string>密码:</string>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QRadioButton" name="isRasterDataRadioButton">
<property name="text">
<string>栅格数据</string>
</property>
<property name="checked">
<bool>true</bool>
</property>
</widget>
</item>
<item row="0" column="8" rowspan="2">
<widget class="QPushButton" name="loginGeoserverPushButton">
<property name="maximumSize">
<size>
<width>80</width>
<height>40</height>
</size>
</property>
<property name="text">
<string>登录</string>
</property>
</widget>
</item>
<item row="0" column="1" colspan="7">
<widget class="QLineEdit" name="geoserverUserNameLineEdit"/>
</item>
<item row="3" column="0">
<widget class="QLabel" name="selectWorkspaceLabel">
<property name="maximumSize">
<size>
<width>60</width>
<height>16777215</height>
</size>
</property>
<property name="text">
<string>工作空间:</string>
</property>
</widget>
</item>
<item row="3" column="5">
<spacer name="horizontalSpacer_3">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Fixed</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item row="2" column="4">
<widget class="QRadioButton" name="isVectorDataRadioButton">
<property name="enabled">
<bool>false</bool>
</property>
<property name="text">
<string>矢量数据</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QGroupBox" name="dataInfoGroupBox">
<property name="title">
<string>数据信息</string>
</property>
<layout class="QGridLayout" name="gridLayout">
<item row="4" column="1">
<widget class="QPushButton" name="clearFilePushButton">
<property name="enabled">
<bool>false</bool>
</property>
<property name="text">
<string/>
</property>
</widget>
</item>
<item row="3" column="1">
<widget class="QPushButton" name="delFilePushButton">
<property name="enabled">
<bool>false</bool>
</property>
<property name="text">
<string/>
</property>
</widget>
</item>
<item row="8" column="0" colspan="2">
<widget class="QTableWidget" name="fieldSettingTableWidget">
<property name="rowCount">
<number>100</number>
</property>
<property name="columnCount">
<number>50</number>
</property>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<column/>
<column/>
<column/>
<column/>
<column/>
<column/>
<column/>
<column/>
<column/>
<column/>
<column/>
<column/>
<column/>
<column/>
<column/>
<column/>
<column/>
<column/>
<column/>
<column/>
<column/>
<column/>
<column/>
<column/>
<column/>
<column/>
<column/>
<column/>
<column/>
<column/>
<column/>
<column/>
<column/>
<column/>
<column/>
<column/>
<column/>
<column/>
<column/>
<column/>
<column/>
<column/>
<column/>
<column/>
<column/>
<column/>
<column/>
<column/>
<column/>
<column/>
</widget>
</item>
<item row="7" column="0">
<widget class="QLabel" name="fieldSettingLabel">
<property name="text">
<string>字段设置:</string>
</property>
</widget>
</item>
<item row="2" column="0" rowspan="3">
<widget class="QListWidget" name="fileListWidget"/>
</item>
<item row="1" column="0">
<widget class="QLabel" name="fileListLabel">
<property name="text">
<string>文件列表:</string>
</property>
</widget>
</item>
<item row="7" column="2" rowspan="2">
<widget class="QPushButton" name="updateDatabasePublisWMSPushButton">
<property name="minimumSize">
<size>
<width>0</width>
<height>35</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>80</width>
<height>40</height>
</size>
</property>
<property name="text">
<string>更新</string>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QPushButton" name="selectFilePushButton">
<property name="enabled">
<bool>false</bool>
</property>
<property name="text">
<string/>
</property>
</widget>
</item>
</layout>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
<resources/>
<connections/>
</ui>

View File

@ -0,0 +1,536 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>PixelValueExtractorDialog</class>
<widget class="QDialog" name="PixelValueExtractorDialog">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>938</width>
<height>584</height>
</rect>
</property>
<property name="windowTitle">
<string>像元值提取</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<property name="spacing">
<number>10</number>
</property>
<property name="leftMargin">
<number>5</number>
</property>
<property name="topMargin">
<number>5</number>
</property>
<property name="rightMargin">
<number>5</number>
</property>
<property name="bottomMargin">
<number>5</number>
</property>
<item>
<widget class="QGroupBox" name="topGroupBox">
<property name="title">
<string/>
</property>
<layout class="QGridLayout" name="topGroupBoxGridLayout">
<property name="leftMargin">
<number>5</number>
</property>
<property name="topMargin">
<number>5</number>
</property>
<property name="rightMargin">
<number>5</number>
</property>
<property name="bottomMargin">
<number>5</number>
</property>
<property name="horizontalSpacing">
<number>10</number>
</property>
<property name="verticalSpacing">
<number>20</number>
</property>
<item row="6" column="1">
<widget class="QComboBox" name="coordinateTypeComboBox">
<item>
<property name="text">
<string>地理坐标lonlat</string>
</property>
</item>
<item>
<property name="text">
<string>投影坐标xy</string>
</property>
</item>
<item>
<property name="text">
<string>图像坐标rowcol</string>
</property>
</item>
</widget>
</item>
<item row="0" column="0" rowspan="5" colspan="11">
<widget class="QTableWidget" name="fileListTableWidget">
<property name="selectionMode">
<enum>QAbstractItemView::SingleSelection</enum>
</property>
<property name="selectionBehavior">
<enum>QAbstractItemView::SelectRows</enum>
</property>
<property name="rowCount">
<number>100</number>
</property>
<property name="columnCount">
<number>2</number>
</property>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<row/>
<column/>
<column/>
</widget>
</item>
<item row="6" column="9">
<widget class="QLabel" name="yFieldLabel">
<property name="text">
<string>Y坐标字段</string>
</property>
</widget>
</item>
<item row="7" column="4">
<widget class="QLineEdit" name="scaleFactorLineEdit">
<property name="enabled">
<bool>false</bool>
</property>
<property name="text">
<string>1</string>
</property>
</widget>
</item>
<item row="8" column="0">
<widget class="QLabel" name="selectSaveDirLabel">
<property name="text">
<string>保存路径:</string>
</property>
</widget>
</item>
<item row="6" column="5">
<spacer name="horizontalSpacer_4">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>13</width>
<height>17</height>
</size>
</property>
</spacer>
</item>
<item row="7" column="0">
<widget class="QLabel" name="pixelRadiusLabel">
<property name="text">
<string>像元半径:</string>
</property>
</widget>
</item>
<item row="4" column="11">
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
<item row="7" column="10">
<widget class="QLineEdit" name="invalidPixelLineEdit">
<property name="enabled">
<bool>false</bool>
</property>
<property name="text">
<string>65536</string>
</property>
</widget>
</item>
<item row="5" column="11">
<widget class="QPushButton" name="selectCoordinateFilePushButton">
<property name="text">
<string/>
</property>
</widget>
</item>
<item row="6" column="2">
<spacer name="horizontalSpacer_2">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>13</width>
<height>17</height>
</size>
</property>
</spacer>
</item>
<item row="7" column="7">
<widget class="QLineEdit" name="noDataLineEdit">
<property name="enabled">
<bool>false</bool>
</property>
<property name="text">
<string>65536</string>
</property>
</widget>
</item>
<item row="2" column="11">
<widget class="QPushButton" name="delImageFilePushButton">
<property name="text">
<string/>
</property>
</widget>
</item>
<item row="6" column="10">
<widget class="QComboBox" name="yFieldComboBox">
<property name="minimumSize">
<size>
<width>120</width>
<height>0</height>
</size>
</property>
<item>
<property name="text">
<string>空</string>
</property>
</item>
</widget>
</item>
<item row="7" column="5">
<spacer name="horizontalSpacer_10">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>13</width>
<height>17</height>
</size>
</property>
</spacer>
</item>
<item row="5" column="0">
<widget class="QLabel" name="selectCoordinateFileLabel">
<property name="text">
<string>坐标文件:</string>
</property>
</widget>
</item>
<item row="6" column="7">
<widget class="QComboBox" name="xFieldComboBox">
<property name="minimumSize">
<size>
<width>120</width>
<height>0</height>
</size>
</property>
<item>
<property name="text">
<string>空</string>
</property>
</item>
</widget>
</item>
<item row="7" column="3">
<widget class="QLabel" name="scaleFactorLabel">
<property name="text">
<string>缩放因子:</string>
</property>
</widget>
</item>
<item row="7" column="6">
<widget class="QLabel" name="noDataLabel">
<property name="text">
<string>NoData值</string>
</property>
</widget>
</item>
<item row="6" column="8">
<spacer name="horizontalSpacer_6">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>13</width>
<height>17</height>
</size>
</property>
</spacer>
</item>
<item row="7" column="1">
<widget class="QSpinBox" name="pixelRadiusSpinBox"/>
</item>
<item row="7" column="9">
<widget class="QLabel" name="invalidPixelLabel">
<property name="text">
<string>无效像元值:</string>
</property>
</widget>
</item>
<item row="6" column="6">
<widget class="QLabel" name="xFieldLabel">
<property name="text">
<string>X坐标字段</string>
</property>
</widget>
</item>
<item row="8" column="11">
<widget class="QPushButton" name="selectSaveDirPushButton">
<property name="text">
<string/>
</property>
</widget>
</item>
<item row="8" column="1" colspan="10">
<widget class="QLineEdit" name="selectSaveDirLineEdit"/>
</item>
<item row="6" column="0">
<widget class="QLabel" name="coordinateTypeLabel">
<property name="text">
<string>坐标类型:</string>
</property>
</widget>
</item>
<item row="6" column="3">
<widget class="QLabel" name="workSheetNameLabel">
<property name="enabled">
<bool>true</bool>
</property>
<property name="maximumSize">
<size>
<width>60</width>
<height>16777215</height>
</size>
</property>
<property name="text">
<string>工作表名:</string>
</property>
</widget>
</item>
<item row="3" column="11">
<widget class="QPushButton" name="clearImageFilePushButton">
<property name="text">
<string/>
</property>
</widget>
</item>
<item row="6" column="4">
<widget class="QComboBox" name="workSheetComboBox">
<property name="minimumSize">
<size>
<width>120</width>
<height>0</height>
</size>
</property>
<item>
<property name="text">
<string>空</string>
</property>
</item>
</widget>
</item>
<item row="7" column="2">
<spacer name="horizontalSpacer_7">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>13</width>
<height>17</height>
</size>
</property>
</spacer>
</item>
<item row="5" column="1" colspan="10">
<widget class="QLineEdit" name="selectCoordinateFileLineEdit"/>
</item>
<item row="1" column="11">
<widget class="QPushButton" name="selectImageFilePushButton">
<property name="text">
<string/>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout">
<property name="leftMargin">
<number>5</number>
</property>
<property name="topMargin">
<number>10</number>
</property>
<property name="rightMargin">
<number>5</number>
</property>
<property name="bottomMargin">
<number>5</number>
</property>
<item>
<widget class="QLabel" name="progressTipLabel">
<property name="text">
<string>程序工作进度:</string>
</property>
</widget>
</item>
<item>
<widget class="QProgressBar" name="progressTipProgressBar">
<property name="styleSheet">
<string notr="true">text-align: Center;color: rgb(0, 0, 0);font-weight: bold</string>
</property>
<property name="value">
<number>0</number>
</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="okPushButton">
<property name="text">
<string>确定</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="cancelPushButton">
<property name="text">
<string>取消</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
<resources/>
<connections/>
</ui>

View File

@ -0,0 +1,410 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>Dialog</class>
<widget class="QDialog" name="Dialog">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>1098</width>
<height>659</height>
</rect>
</property>
<property name="windowTitle">
<string>Dialog</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<layout class="QHBoxLayout" name="horizontalLayout_7">
<property name="spacing">
<number>5</number>
</property>
<item>
<widget class="QPushButton" name="pushButton_7">
<property name="text">
<string>关闭</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="pushButton_2">
<property name="text">
<string>关闭</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="pushButton_9">
<property name="text">
<string>关闭</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="pushButton_8">
<property name="text">
<string>关闭</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="pushButton_5">
<property name="text">
<string>关闭</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="pushButton_3">
<property name="styleSheet">
<string notr="true">border:1px solid rgba(0,0,0,0);background:1px solid rgba(0,0,0,0)</string>
</property>
<property name="text">
<string>PushButton</string>
</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>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout" stretch="0,1">
<item>
<widget class="QTreeWidget" name="treeWidget">
<column>
<property name="text">
<string>图像属性</string>
</property>
</column>
<item>
<property name="text">
<string>空</string>
</property>
<item>
<property name="text">
<string>栅格信息</string>
</property>
</item>
<item>
<property name="text">
<string>地图信息</string>
</property>
</item>
<item>
<property name="text">
<string>坐标系信息</string>
</property>
</item>
<item>
<property name="text">
<string>空间范围</string>
</property>
</item>
<item>
<property name="text">
<string>波段统计信息</string>
</property>
</item>
</item>
</widget>
</item>
<item>
<widget class="QStackedWidget" name="stackedWidget">
<property name="currentIndex">
<number>4</number>
</property>
<widget class="QWidget" name="page">
<layout class="QHBoxLayout" name="horizontalLayout_2">
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="QTableWidget" name="tableWidget">
<row>
<property name="text">
<string>New Row</string>
</property>
</row>
<row>
<property name="text">
<string>New Row</string>
</property>
</row>
<row>
<property name="text">
<string>New Row</string>
</property>
</row>
<row>
<property name="text">
<string>New Row</string>
</property>
</row>
<column>
<property name="text">
<string>属性名</string>
</property>
</column>
<column>
<property name="text">
<string>属性值</string>
</property>
</column>
</widget>
</item>
</layout>
</widget>
<widget class="QWidget" name="page_3">
<layout class="QHBoxLayout" name="horizontalLayout_4">
<property name="spacing">
<number>5</number>
</property>
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="QTableWidget" name="tableWidget_3"/>
</item>
</layout>
</widget>
<widget class="QWidget" name="page_2">
<layout class="QHBoxLayout" name="horizontalLayout_3">
<property name="spacing">
<number>5</number>
</property>
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="QTableWidget" name="tableWidget_2"/>
</item>
</layout>
</widget>
<widget class="QWidget" name="page_4">
<layout class="QHBoxLayout" name="horizontalLayout_5">
<property name="spacing">
<number>5</number>
</property>
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="QTableWidget" name="tableWidget_4"/>
</item>
</layout>
</widget>
<widget class="QWidget" name="page_5">
<layout class="QHBoxLayout" name="horizontalLayout_6">
<property name="spacing">
<number>5</number>
</property>
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="QFrame" name="frame">
<property name="frameShape">
<enum>QFrame::Box</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Sunken</enum>
</property>
<layout class="QVBoxLayout" name="verticalLayout_2" stretch="2,1,0">
<item>
<layout class="QHBoxLayout" name="horizontalLayout_8"/>
</item>
<item>
<widget class="QTableWidget" name="tableWidget_5"/>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_9" stretch="0,0,0,0,0,0,0,0,0,0">
<property name="spacing">
<number>5</number>
</property>
<property name="topMargin">
<number>10</number>
</property>
<item>
<widget class="QLabel" name="label">
<property name="text">
<string>统计波段:</string>
</property>
</widget>
</item>
<item>
<widget class="QComboBox" name="comboBox">
<item>
<property name="text">
<string>Band1</string>
</property>
</item>
</widget>
</item>
<item>
<spacer name="horizontalSpacer_3">
<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="QLabel" name="label_2">
<property name="text">
<string>直方图bin</string>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="lineEdit">
<property name="minimumSize">
<size>
<width>50</width>
<height>20</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>50</width>
<height>20</height>
</size>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer_4">
<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="QLabel" name="label_3">
<property name="text">
<string>曲线平滑:</string>
</property>
</widget>
</item>
<item>
<widget class="QSlider" name="horizontalSlider">
<property name="minimumSize">
<size>
<width>200</width>
<height>20</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>200</width>
<height>20</height>
</size>
</property>
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer_2">
<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_6">
<property name="text">
<string>导出</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
</item>
</layout>
</widget>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
<resources/>
<connections/>
</ui>

View File

@ -0,0 +1,287 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>SampleMakerDialog</class>
<widget class="QDialog" name="SampleMakerDialog">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>929</width>
<height>757</height>
</rect>
</property>
<property name="windowTitle">
<string>创建样本</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout" stretch="0,3,0,0">
<property name="leftMargin">
<number>5</number>
</property>
<property name="topMargin">
<number>5</number>
</property>
<property name="rightMargin">
<number>5</number>
</property>
<item>
<widget class="QGroupBox" name="parametersSettingGroupBox">
<property name="title">
<string>参数设置</string>
</property>
<layout class="QGridLayout" name="parametersSettingGridLayout" columnstretch="0,0,0,0,0,0,0,0">
<property name="leftMargin">
<number>10</number>
</property>
<property name="rightMargin">
<number>10</number>
</property>
<property name="bottomMargin">
<number>10</number>
</property>
<property name="horizontalSpacing">
<number>5</number>
</property>
<item row="3" column="1" colspan="6">
<widget class="QLineEdit" name="selectAllSampleLineEdit"/>
</item>
<item row="0" column="3">
<widget class="QRadioButton" name="isRegressorSamplesRadioButton">
<property name="text">
<string>回归样本</string>
</property>
<property name="checked">
<bool>true</bool>
</property>
</widget>
</item>
<item row="0" column="4">
<widget class="QRadioButton" name="isClassifierSamplesRadioButton">
<property name="text">
<string>分类样本</string>
</property>
</widget>
</item>
<item row="0" column="2">
<widget class="QCheckBox" name="isIncludeColTitleCheckBox">
<property name="text">
<string>包含列标题</string>
</property>
<property name="checked">
<bool>true</bool>
</property>
</widget>
</item>
<item row="0" column="6">
<widget class="QDoubleSpinBox" name="testSampleSizeDoubleSpinBox">
<property name="maximumSize">
<size>
<width>80</width>
<height>16777215</height>
</size>
</property>
<property name="value">
<double>0.300000000000000</double>
</property>
</widget>
</item>
<item row="0" column="5">
<widget class="QLabel" name="testSampleSizeLabel">
<property name="maximumSize">
<size>
<width>80</width>
<height>16777215</height>
</size>
</property>
<property name="text">
<string>测试样本比例:</string>
</property>
</widget>
</item>
<item row="3" column="0">
<widget class="QLabel" name="selectAllSampleLabel">
<property name="maximumSize">
<size>
<width>60</width>
<height>16777215</height>
</size>
</property>
<property name="text">
<string>总体样本:</string>
</property>
</widget>
</item>
<item row="3" column="7">
<widget class="QPushButton" name="selectAllSamplePushButton">
<property name="maximumSize">
<size>
<width>30</width>
<height>16777215</height>
</size>
</property>
<property name="text">
<string/>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QCheckBox" name="isIncludeRowTitleCheckBox">
<property name="text">
<string>包含行标题</string>
</property>
<property name="checked">
<bool>true</bool>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QGroupBox" name="sampleDistributionGroupBox">
<property name="title">
<string>样本分布图表</string>
</property>
<layout class="QHBoxLayout" name="sampleDistributionHorizontalLayout">
<property name="spacing">
<number>5</number>
</property>
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>5</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>5</number>
</property>
<item>
<layout class="QGridLayout" name="sampleDistributionChartGridLayout"/>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QGroupBox" name="outputGroupBox">
<property name="title">
<string>输出</string>
</property>
<layout class="QGridLayout" name="outputGridLayout">
<item row="0" column="2">
<widget class="QPushButton" name="saveTrainingCVSamplePushButton">
<property name="text">
<string/>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QLineEdit" name="saveTestSampleLineEdit"/>
</item>
<item row="1" column="2">
<widget class="QPushButton" name="saveTestSamplePushButton">
<property name="text">
<string/>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QLineEdit" name="saveSampleDistributionChartLineEdit">
<property name="enabled">
<bool>false</bool>
</property>
</widget>
</item>
<item row="2" column="2">
<widget class="QPushButton" name="saveSampleDistributionChartPushButton">
<property name="enabled">
<bool>false</bool>
</property>
<property name="text">
<string/>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QLineEdit" name="saveTrainingCVSampleLineEdit"/>
</item>
<item row="0" column="0">
<widget class="QLabel" name="saveTrainingCVSampleLabel">
<property name="text">
<string>训练验证样本:</string>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="saveTestSampleLabel">
<property name="text">
<string>测试样本:</string>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QLabel" name="saveSampleDistributionChartLabel">
<property name="text">
<string>样本分布图表:</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<layout class="QHBoxLayout" name="okCancelButtonHorizontalLayout" stretch="0,0,0,0">
<property name="spacing">
<number>5</number>
</property>
<property name="topMargin">
<number>15</number>
</property>
<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="okPushButton">
<property name="text">
<string>确定</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="cancelPushButton">
<property name="text">
<string>取消</string>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer_2">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
</layout>
</widget>
<resources/>
<connections/>
</ui>

View File

@ -0,0 +1,696 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>Dialog</class>
<widget class="QDialog" name="Dialog">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>1061</width>
<height>634</height>
</rect>
</property>
<property name="windowTitle">
<string>Dialog</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_2">
<property name="spacing">
<number>5</number>
</property>
<property name="leftMargin">
<number>5</number>
</property>
<property name="topMargin">
<number>10</number>
</property>
<property name="rightMargin">
<number>5</number>
</property>
<property name="bottomMargin">
<number>10</number>
</property>
<item>
<layout class="QGridLayout" name="gridLayout">
<item row="0" column="2">
<spacer name="horizontalSpacer_2">
<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 row="1" column="2">
<spacer name="horizontalSpacer_3">
<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 row="1" column="1">
<widget class="QLabel" name="currentOperationDescriptionLabel">
<property name="text">
<string>选择训练及评估模型所用的样本数据</string>
</property>
</widget>
</item>
<item row="0" column="0" rowspan="2">
<widget class="QLabel" name="currentOperationLogoLabel">
<property name="text">
<string>TextLabel</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QLabel" name="currentOperationTipLabel">
<property name="font">
<font>
<family>Aharoni</family>
<pointsize>16</pointsize>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>选择样本</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<widget class="QStackedWidget" name="stackedWidget">
<property name="currentIndex">
<number>1</number>
</property>
<widget class="QWidget" name="selectSamplePage">
<layout class="QVBoxLayout" name="selectSampleVerticalLayout" stretch="0,1">
<property name="spacing">
<number>5</number>
</property>
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>10</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>10</number>
</property>
<item>
<widget class="QGroupBox" name="sampleSettingGroupBox">
<property name="title">
<string>样本设置</string>
</property>
<layout class="QGridLayout" name="sampleSettingGroupBoxGridLayout">
<item row="0" column="4">
<spacer name="horizontalSpacer_5">
<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 row="0" column="2">
<spacer name="horizontalSpacer_4">
<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 row="1" column="0">
<widget class="QLabel" name="selectTrainingValidationSampleLabel">
<property name="text">
<string>训练-验证样本:</string>
</property>
</widget>
</item>
<item row="0" column="7">
<widget class="QRadioButton" name="isColMajorRadioButton">
<property name="text">
<string>列优先</string>
</property>
</widget>
</item>
<item row="0" column="5">
<widget class="QRadioButton" name="isRowMajorRadioButton">
<property name="text">
<string>行优先</string>
</property>
</widget>
</item>
<item row="0" column="3">
<widget class="QCheckBox" name="isIncludeColTitleCheckBox">
<property name="text">
<string>包含列标题</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QCheckBox" name="isIncludeRowTitleCheckBox">
<property name="text">
<string>包含行标题</string>
</property>
</widget>
</item>
<item row="0" column="0">
<widget class="QLabel" name="sampleTypeLabel">
<property name="text">
<string>样本文件类型:</string>
</property>
</widget>
</item>
<item row="1" column="8">
<widget class="QPushButton" name="selectTrainingValidationSamplePushButton">
<property name="text">
<string/>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QLabel" name="selectTestSampleLabel">
<property name="text">
<string>测试样本(可选):</string>
</property>
</widget>
</item>
<item row="2" column="1" colspan="7">
<widget class="QLineEdit" name="selectTestSampleLineEdit"/>
</item>
<item row="2" column="8">
<widget class="QPushButton" name="selectTestSamplePushButton">
<property name="text">
<string/>
</property>
</widget>
</item>
<item row="1" column="1" colspan="7">
<widget class="QLineEdit" name="selectTrainingValidationSampleLineEdit"/>
</item>
<item row="0" column="6">
<spacer name="horizontalSpacer_6">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QFrame" name="frame">
<property name="styleSheet">
<string notr="true">background-color:white</string>
</property>
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Sunken</enum>
</property>
<layout class="QHBoxLayout" name="horizontalLayout_4">
<property name="spacing">
<number>5</number>
</property>
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<layout class="QHBoxLayout" name="sampleStatisticChartHorizontalLayout"/>
</item>
</layout>
</widget>
</item>
</layout>
</widget>
<widget class="QWidget" name="buildModelPage">
<layout class="QGridLayout" name="buildModelPageGridLayout" rowstretch="2,1" columnstretch="1,1">
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>10</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>10</number>
</property>
<property name="horizontalSpacing">
<number>5</number>
</property>
<item row="0" column="0" colspan="2">
<widget class="QGroupBox" name="paramstersSettingGroupBox">
<property name="title">
<string>参数设置</string>
</property>
<layout class="QGridLayout" name="paramstersSettingGridLayout">
<item row="0" column="1">
<widget class="QLineEdit" name="addEquationLlineEdit"/>
</item>
<item row="1" column="0" rowspan="4" colspan="2">
<widget class="QTableWidget" name="validEquationTableWidget"/>
</item>
<item row="0" column="0">
<widget class="QLabel" name="addEquationLabel">
<property name="text">
<string>定义方程:</string>
</property>
</widget>
</item>
<item row="4" column="2">
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
<item row="3" column="2">
<widget class="QPushButton" name="resetEquationPushButton">
<property name="text">
<string/>
</property>
</widget>
</item>
<item row="2" column="2">
<widget class="QPushButton" name="clearEquationPushButton">
<property name="text">
<string/>
</property>
</widget>
</item>
<item row="0" column="2">
<widget class="QPushButton" name="addEquationPushButton">
<property name="maximumSize">
<size>
<width>45</width>
<height>16777215</height>
</size>
</property>
<property name="text">
<string>添加</string>
</property>
</widget>
</item>
<item row="1" column="2">
<widget class="QPushButton" name="deleteEquationPushButton">
<property name="text">
<string/>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item row="1" column="0">
<widget class="QGroupBox" name="modelInfoGroupBox">
<property name="title">
<string>模型信息</string>
</property>
<layout class="QHBoxLayout" name="modelInfoHorizontalLayout">
<property name="spacing">
<number>5</number>
</property>
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>5</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="QTextBrowser" name="modelInfoTextBrowser">
<property name="styleSheet">
<string notr="true">background:rgb(240,240,240)</string>
</property>
<property name="frameShape">
<enum>QFrame::NoFrame</enum>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item row="1" column="1">
<widget class="QGroupBox" name="modelResultGroupBox">
<property name="title">
<string>结果</string>
</property>
<layout class="QGridLayout" name="modelResultGridLayout">
<item row="0" column="3">
<widget class="QLabel" name="modelResultMSELabel">
<property name="text">
<string>MSE</string>
</property>
</widget>
</item>
<item row="2" column="2">
<widget class="QLabel" name="testResultR2Label">
<property name="text">
<string>-</string>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QLabel" name="testResulSampleCountLabel">
<property name="text">
<string>-</string>
</property>
</widget>
</item>
<item row="1" column="3">
<widget class="QLabel" name="trainingResultMSELabel">
<property name="text">
<string>-</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QLabel" name="trainingResultSampleCountLabel">
<property name="text">
<string>-</string>
</property>
</widget>
</item>
<item row="2" column="3">
<widget class="QLabel" name="testResultMSELabel">
<property name="text">
<string>-</string>
</property>
</widget>
</item>
<item row="1" column="2">
<widget class="QLabel" name="trainingResultR2Label">
<property name="text">
<string>-</string>
</property>
</widget>
</item>
<item row="0" column="2">
<widget class="QLabel" name="modelResultR2Label">
<property name="text">
<string>R2</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QLabel" name="modelResultSampleCountLabel">
<property name="text">
<string>样本数</string>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QLabel" name="testResultLabel">
<property name="text">
<string>测试:</string>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="trainingResultLabel">
<property name="text">
<string>训练:</string>
</property>
</widget>
</item>
<item row="3" column="0" colspan="4">
<widget class="Line" name="line">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
<item row="4" column="3">
<widget class="QPushButton" name="plotTrainingInfoPushButton">
<property name="text">
<string>绘制模型评估图表</string>
</property>
</widget>
</item>
<item row="4" column="2">
<widget class="QPushButton" name="trainModelPushButton">
<property name="text">
<string>训练</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
</layout>
</widget>
<widget class="QWidget" name="saveModelDataPage">
<layout class="QHBoxLayout" name="saveResultDataVerticalLayout_2">
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>10</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>10</number>
</property>
<item>
<widget class="QGroupBox" name="saveResultDataGroupBox">
<property name="title">
<string/>
</property>
<layout class="QVBoxLayout" name="saveResultDataVerticalLayout">
<item>
<layout class="QFormLayout" name="saveResultDataFormLayout">
<item row="0" column="0">
<widget class="QCheckBox" name="isSaveBestModelToXMLCheckBox">
<property name="text">
<string>保存最优模型到本地xml文件</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QLineEdit" name="isSaveBestModelToXMLLineEdit"/>
</item>
<item row="1" column="0">
<widget class="QCheckBox" name="isSaveModelDataToExcelFileNameCheckBox">
<property name="text">
<string>保存模型训练、测试数据结果到本地Excel文件</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QLineEdit" name="isSaveModelDataToExcelFileNameLineEdit"/>
</item>
<item row="2" column="0">
<widget class="QCheckBox" name="isSaveTrainingDataToWorkingSheetNameCheckBox">
<property name="text">
<string>保存模型训练数据结果的Excel文件工作表</string>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QLineEdit" name="isSaveTrainingDataToWorkingSheetNameLineEdit"/>
</item>
<item row="3" column="0">
<widget class="QCheckBox" name="isSaveTestDataToWorkingSheetNameCheckBox">
<property name="text">
<string>保存模型测试数据结果的Excel文件工作表</string>
</property>
</widget>
</item>
<item row="3" column="1">
<widget class="QLineEdit" name="isSaveTestDataToWorkingSheetNameLineEdit"/>
</item>
</layout>
</item>
<item>
<widget class="Line" name="line_2">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_5">
<item>
<widget class="QLabel" name="selectSaveDirectoryLabel">
<property name="text">
<string>保存路径:</string>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="selectSaveDirectoryLineEdit"/>
</item>
<item>
<widget class="QPushButton" name="selectSaveDirectoryPushButton">
<property name="text">
<string/>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_6">
<item>
<spacer name="horizontalSpacer_7">
<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="resetParameterPushButton">
<property name="text">
<string>重置参数</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="saveModelDataPushButton">
<property name="text">
<string>保存结果</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<spacer name="verticalSpacer_2">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
</item>
</layout>
</widget>
</widget>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout">
<property name="topMargin">
<number>15</number>
</property>
<item>
<widget class="QLabel" name="operationNextStepIconLabel">
<property name="text">
<string>TextLabel</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="operationNextStepTipLabel">
<property name="text">
<string>选择本地样本文件后,点击“下一步”以继续操作!</string>
</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="previousStepPushButton">
<property name="text">
<string>上一步</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="nextStepPushButton">
<property name="text">
<string>下一步</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="cancelPushButton">
<property name="text">
<string>取消</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
<resources/>
<connections/>
</ui>

View File

@ -0,0 +1,31 @@
QGroupBox
layoutTopMargin:5
layoutBottomMargin:5
layoutLeftMargin:10
layoutRightMargin:10
layoutHorizontalSpacing:5
layoutVerticalSpacing:10
HorizontalLayout—>layoutStretch
VerticalLayout—>layoutStretch
GridLayout—>layoutRowStretch、layoutColumnStretch
background:#F5F5F5
控件默认背景色background:rgb(240,240,240)
颜色表参考https://blog.csdn.net/zy_heu/article/details/78952173
button背景色设置为无色border:1px solid rgba(0,0,0,0);background:1px solid rgba(0,0,0,0)
鼠标划过时设置button颜色https://zhidao.baidu.com/question/349973878.html
loginButton->setStyleSheet(tr("QPushButton{background-color:white;}QPushButton:hover{background-color:cyan;}QPushButton:pressed{background-color:red;}"));
调用Qbutton的setStyleSheet类上面的函数实现鼠标移到按钮前是白色移到按钮后是蓝色按下后是红色。当然如果不想换掉按下后的颜色直接loginButton->setStyleSheet(tr("QPushButton{background-color:white;}QPushButton:hover{background-color:cyan;}"));就行。

View File

@ -0,0 +1,22 @@
# -*- coding:utf-8 -*-
import os
import shutil
def clearRunCache(app_dir):
for script_folder in os.listdir(app_dir):
script_dir = os.path.join(app_dir, script_folder)
if os.path.isdir(script_dir):
for file in os.listdir(script_dir):
if file == "__pycache__":
cache_dir = os.path.join(script_dir, file)
shutil.rmtree(cache_dir)
def main():
working_dir = os.path.join(os.getcwd(), "core")
clearRunCache(working_dir)
if __name__ == "__main__":
#
main()

View File

@ -0,0 +1,13 @@
# -*- coding:utf-8 -*-
import os
import sys
sys.path.append(os.path.dirname(os.path.abspath(__file__)))
from appUI.MainWindow import main
if __name__ == "__main__":
#
main()

View File

@ -0,0 +1,8 @@
[General]
lastFileDir=C:\\Users\\Lenovo
curlBinDir=D:\\new\\\x5168\x519b\x5e94\x7528\x8f6f\x4ef6\x521b\x5ba2\x5927\x8d5b\\iPyGIRS\\core\\bin\\curl-7.65.3-win64-mingw\\bin
sklearnParamsFilepath=C:\\cygwin64\\home\\Lenovo\\\x667a\x80fd\x65e0\x4eba\x673a\x8def\x5f84\x89c4\x5212\x4eff\x771f\x7cfb\x7edf\\core\\resource\\data\\sklearn_params.json
mySQLHost=localhost
mySQLPort=3306
geoserverHost=localhost
geoserverPort=8090

File diff suppressed because it is too large Load Diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 59 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

Some files were not shown because too many files have changed in this diff Show More