diff --git a/RespCoarseAlign.py b/RespCoarseAlign.py
new file mode 100644
index 0000000..ef24701
--- /dev/null
+++ b/RespCoarseAlign.py
@@ -0,0 +1,317 @@
+#!/usr/bin/python
+# -*- coding: UTF-8 -*-
+"""
+@author:andrew
+@file:RespCoarseAlign.py
+@email:admin@marques22.com
+@email:2021022362@m.scnu.edu.cn
+@time:2023/09/20
+"""
+
+import sys
+from pathlib import Path
+import mne
+import numpy as np
+import pandas as pd
+from PySide6.QtWidgets import QApplication, QMainWindow, QFileDialog, QMessageBox
+from PySide6.QtCore import QFile
+from scipy import signal
+from scipy.signal import butter
+
+from ui.Mian import Ui_mainWindow as Ui_respCoarseAlign
+from ui.setings import Ui_MainWindow as Ui_Setting
+import yaml
+
+Conf = {
+ "PSGConfig": {
+ "Path": "./Data/PSG/",
+ "Frequency": 100,
+ "THOChannel": {
+ "auto": True,
+ "Channel": 3,
+ },
+ "ABDChannel": {
+ "auto": True,
+ "Channel": 4,
+ },
+ },
+ "XXConfig": {
+ "Path": "./Data/XX/",
+ "Frequency": 100,
+ },
+ "RespFilterConfig": {
+ "LowPass": 0.01,
+ "HighPass": 0.7,
+ "order": 4
+ },
+ "ApplyFrequency": 5
+}
+
+
+class SettingWindow(QMainWindow):
+ def __init__(self):
+ super(SettingWindow, self).__init__()
+ self.ui = Ui_Setting()
+ self.ui.setupUi(self)
+ self.__read_settings__()
+
+ def __read_settings__(self):
+ with open("./config.yaml", "r") as f:
+ fileConfig = yaml.load(f.read(), Loader=yaml.FullLoader)
+ Conf.update(fileConfig)
+ # print(Conf)
+ self.ui.lineEdit_PSGFilePath.setText(Conf["PSGConfig"]["Path"])
+ self.ui.lineEdit_XXFilePath.setText(Conf["XXConfig"]["Path"])
+ self.ui.spinBox_PSGDefaultFreq.setValue(Conf["PSGConfig"]["Frequency"])
+ self.ui.spinBox_XXDefaultFreq.setValue(Conf["XXConfig"]["Frequency"])
+ self.ui.QSpinBox_ApplyFre.setValue(Conf["ApplyFrequency"])
+ autoTHO = Conf["PSGConfig"]["THOChannel"]["auto"]
+ self.ui.checkBox_THOautoChannel.setChecked(2 if autoTHO else 0)
+ autoABD = Conf["PSGConfig"]["ABDChannel"]["auto"]
+ self.ui.checkBox_ABDautoChannel.setChecked(2 if autoABD else 0)
+ self.ui.spinBox_THOcustomChannel.setValue(Conf["PSGConfig"]["THOChannel"]["Channel"])
+ self.ui.spinBox_ABDcustomChannel.setValue(Conf["PSGConfig"]["ABDChannel"]["Channel"])
+ self.ui.doubleSpinBox_ButterLowPassFreq.setValue(Conf["RespFilterConfig"]["LowCut"])
+ self.ui.doubleSpinBox_ButterHighPassFreq.setValue(Conf["RespFilterConfig"]["HighCut"])
+ self.ui.spinBox_ButterOrder.setValue(Conf["RespFilterConfig"]["Order"])
+ self.ui.spinBox_THOcustomChannel.setEnabled(not autoTHO)
+ self.ui.spinBox_ABDcustomChannel.setEnabled(not autoABD)
+
+ # 绑定事件
+ self.ui.toolButton_PSGFilePath.clicked.connect(self.__select_file__)
+ self.ui.toolButton_XXFilePath.clicked.connect(self.__select_file__)
+
+ self.ui.pushButton_SaveConfig.clicked.connect(self.__write_settings__)
+ self.ui.pushButton_Cancel.clicked.connect(self.close)
+
+ # ABD auto checkbox和SpinBox 互斥
+ self.ui.checkBox_ABDautoChannel.stateChanged.connect(self.__ABDAutoChannel__)
+ self.ui.checkBox_THOautoChannel.stateChanged.connect(self.__THOAutoChannel__)
+
+ def __ABDAutoChannel__(self, state):
+ if state == 2:
+ self.ui.spinBox_ABDcustomChannel.setEnabled(False)
+ else:
+ self.ui.spinBox_ABDcustomChannel.setEnabled(True)
+
+ def __THOAutoChannel__(self, state):
+ if state == 2:
+ self.ui.spinBox_THOcustomChannel.setEnabled(False)
+ else:
+ self.ui.spinBox_THOcustomChannel.setEnabled(True)
+
+ def __select_file__(self, event):
+ sender = self.sender()
+ if sender.objectName() == "toolButton_PSGFilePath":
+ path = QFileDialog.getExistingDirectory(self, "选择PSG数据文件夹", "./Data/PSG/")
+ self.ui.lineEdit_PSGFilePath.setText(path)
+ elif sender.objectName() == "toolButton_XXFilePath":
+ path = QFileDialog.getExistingDirectory(self, "选择XX数据文件夹", "./Data/XX/")
+ self.ui.lineEdit_XXFilePath.setText(path)
+
+ def __write_settings__(self):
+ # 从界面读取配置
+ Conf["PSGConfig"]["Path"] = self.ui.lineEdit_PSGFilePath.text()
+ Conf["XXConfig"]["Path"] = self.ui.lineEdit_XXFilePath.text()
+ Conf["PSGConfig"]["Frequency"] = self.ui.spinBox_PSGDefaultFreq.value()
+ Conf["XXConfig"]["Frequency"] = self.ui.spinBox_XXDefaultFreq.value()
+ Conf["ApplyFrequency"] = self.ui.QSpinBox_ApplyFre.value()
+ Conf["PSGConfig"]["THOChannel"]["auto"] = self.ui.checkBox_THOautoChannel.isChecked()
+ Conf["PSGConfig"]["ABDChannel"]["auto"] = self.ui.checkBox_ABDautoChannel.isChecked()
+ Conf["PSGConfig"]["THOChannel"]["Channel"] = self.ui.spinBox_THOcustomChannel.value()
+ Conf["PSGConfig"]["ABDChannel"]["Channel"] = self.ui.spinBox_ABDcustomChannel.value()
+ Conf["RespFilterConfig"]["LowCut"] = self.ui.doubleSpinBox_ButterLowPassFreq.value()
+ Conf["RespFilterConfig"]["HighCut"] = self.ui.doubleSpinBox_ButterHighPassFreq.value()
+ Conf["RespFilterConfig"]["Order"] = self.ui.spinBox_ButterOrder.value()
+
+ with open("./config.yaml", "w") as f:
+ yaml.dump(Conf, f)
+
+ self.close()
+
+
+class Data:
+ def __init__(self, PSGDataPath, XXDataPath, sampNo, Config):
+ self.PSGDataPath = PSGDataPath / f"{sampNo}.edf"
+ if (XXDataPath / f"{sampNo}.npy").exists():
+ self.XXDataPath = XXDataPath / f"{sampNo}.npy"
+ elif (XXDataPath / f"{sampNo}.txt").exists():
+ self.XXDataPath = XXDataPath / f"{sampNo}.txt"
+ else:
+ self.XXDataPath = None
+
+ self.Config = Config
+
+ self.raw_THO = None
+ self.raw_ABD = None
+ self.raw_XX = None
+
+ self.PSG_minutes = None
+ self.XX_minutes = None
+
+ def OpenFile(self):
+ # 判断是edf还是npy或txt
+ if self.PSGDataPath.suffix == ".edf":
+ with mne.io.read_raw_edf(self.PSGDataPath) as PSG:
+ # read THO ABD
+ if self.Config["PSGConfig"]["THOChannel"]["auto"]:
+ self.raw_THO = PSG.pick_channels(["THO"]).get_data()[0]
+ else:
+ self.raw_THO = PSG.pick_channels([self.Config["PSGConfig"]["THOChannel"]["Channel"]]).get_data()[0]
+ if self.Config["PSGConfig"]["ABDChannel"]["auto"]:
+ self.raw_ABD = PSG.pick_channels(["ABD"]).get_data()[0]
+ else:
+ self.raw_ABD = PSG.pick_channels([self.Config["PSGConfig"]["ABDChannel"]["Channel"]]).get_data()[0]
+ else:
+ return False, "PSG文件格式错误"
+
+ if self.XXDataPath.suffix == ".npy":
+ self.raw_XX = np.load(self.XXDataPath)
+ elif self.XXDataPath.suffix == ".txt":
+ self.raw_XX = pd.read_csv(self.XXDataPath, sep="\t", header=None).values
+ else:
+ return False, "XX文件格式错误"
+
+ # 获取时长
+ self.PSG_minutes = self.raw_THO.shape[0] / self.Config["PSGConfig"]["Frequency"] / 60
+ self.XX_minutes = self.raw_XX.shape[0] / self.Config["XXConfig"]["Frequency"] / 60
+
+ return True, "读取成功"
+
+ def __Filter__(self):
+ def butter_bandpass_filter(data, lowCut, highCut, fs, order):
+ low = lowCut / (fs * 0.5)
+ high = highCut / (fs * 0.5)
+ sos = signal.butter(order, [low, high], btype="bandpass", output='sos')
+ return signal.sosfilt(sos, data)
+
+ # 滤波
+ self.raw_THO = butter_bandpass_filter(self.raw_THO, self.Config["RespFilterConfig"]["LowCut"],
+ self.Config["RespFilterConfig"]["HighCut"],
+ self.Config["PSGConfig"]["Frequency"],
+ self.Config["RespFilterConfig"]["Order"])
+ self.raw_ABD = butter_bandpass_filter(self.raw_ABD, self.Config["RespFilterConfig"]["LowCut"],
+ self.Config["RespFilterConfig"]["HighCut"],
+ self.Config["PSGConfig"]["Frequency"],
+ self.Config["RespFilterConfig"]["Order"])
+ self.raw_XX = butter_bandpass_filter(self.raw_XX, self.Config["RespFilterConfig"]["LowCut"],
+ self.Config["RespFilterConfig"]["HighCut"],
+ self.Config["XXConfig"]["Frequency"],
+ self.Config["RespFilterConfig"]["Order"])
+
+ def Standardize(self):
+ if self.Config["RawSignal"]:
+ # 重采样
+ self.raw_THO = signal.resample(self.raw_THO, int(self.PSG_minutes * 60 * self.Config["ApplyFrequency"]))
+ self.raw_ABD = signal.resample(self.raw_ABD, int(self.PSG_minutes * 60 * self.Config["ApplyFrequency"]))
+ self.raw_XX = signal.resample(self.raw_XX, int(self.XX_minutes * 60 * self.Config["ApplyFrequency"]))
+ else:
+ # 滤波
+ self.__Filter__()
+ # 重采样
+ self.raw_THO = signal.resample(self.raw_THO, int(self.PSG_minutes * 60 * self.Config["ApplyFrequency"]))
+ self.raw_ABD = signal.resample(self.raw_ABD, int(self.PSG_minutes * 60 * self.Config["ApplyFrequency"]))
+ self.raw_XX = signal.resample(self.raw_XX, int(self.XX_minutes * 60 * self.Config["ApplyFrequency"]))
+
+ # 判断是否去基线
+ # 判断是否标准化
+
+
+class MainWindow(QMainWindow):
+ def __init__(self):
+ super(MainWindow, self).__init__()
+ self.ui = Ui_respCoarseAlign()
+ self.setting = SettingWindow()
+ self.ui.setupUi(self)
+
+ self.ui.actionDefault_Configuration.triggered.connect(self.setting.show)
+
+ # checkbox custom 和SpinBox 互斥
+ self.ui.checkBox_custom.stateChanged.connect(self.__customChannel__)
+
+ # 绑定事件
+ # 刷新键分别获取PSG和XX文件夹里面的数据,获取所有编号显示在下拉框,比对编号同时存在的可选,仅存在一个文件夹的编号不可选
+ self.ui.pushButton_Refresh.clicked.connect(self.__refresh__)
+ self.ui.pushButton_OpenFile.clicked.connect(self.__openFile__)
+ self.ui.pushButton_Standardize.clicked.connect(self.__standardize__)
+
+ def __customChannel__(self, state):
+ if state == 2:
+ self.ui.spinBox_custom.setEnabled(True)
+ else:
+ self.ui.spinBox_custom.setEnabled(False)
+
+ # 刷新键分别获取PSG和XX文件夹里面的数据,获取所有编号显示在下拉框,比对编号同时存在的可选,仅存在一个文件夹的编号不可选
+ def __refresh__(self):
+ # 检查两文件夹是否存在
+ PSGPath = Path(self.setting.ui.lineEdit_PSGFilePath.text())
+ XXPath = Path(self.setting.ui.lineEdit_XXFilePath.text())
+ if not PSGPath.exists():
+ QMessageBox.warning(self, "警告", "PSG文件夹不存在")
+ return
+ if not XXPath.exists():
+ QMessageBox.warning(self, "警告", "XX文件夹不存在")
+ return
+
+ # 获取两文件夹下所有的txt和npy文件编号
+ PSGFiles = [file.stem for file in PSGPath.glob("*.edf")]
+ XXFiles = [file.stem for file in XXPath.glob("*.txt")] + [file.stem for file in XXPath.glob("*.npy")]
+ # 获取两文件夹下同时存在的编号
+ print(PSGFiles, XXFiles)
+ Files = list(set(PSGFiles).intersection(set(XXFiles)))
+ # 获取两文件夹下仅存在一个的编号
+ FilesOnlyInPSG = list(set(PSGFiles).difference(set(XXFiles)))
+ FilesOnlyInXX = list(set(XXFiles).difference(set(PSGFiles)))
+ print(Files, FilesOnlyInPSG, FilesOnlyInXX)
+ # 均显示到下拉框
+ self.ui.comboBox_SelectFile.clear()
+ self.ui.comboBox_SelectFile.addItems([file for file in Files])
+ self.ui.comboBox_SelectFile.addItems([file + " (仅PSG)" for file in FilesOnlyInPSG])
+ self.ui.comboBox_SelectFile.addItems([file + " (仅XX)" for file in FilesOnlyInXX])
+ self.ui.comboBox_SelectFile.setCurrentIndex(0)
+
+ # # 仅存在一个文件夹的编号不可选
+ for file in FilesOnlyInPSG:
+ self.ui.comboBox_SelectFile.model().item(FilesOnlyInPSG.index(file) + len(Files)).setEnabled(False)
+ for file in FilesOnlyInXX:
+ self.ui.comboBox_SelectFile.model().item(
+ FilesOnlyInXX.index(file) + len(Files) + len(FilesOnlyInPSG)).setEnabled(False)
+
+ def __openFile__(self):
+ # 获取checkbox状态
+ self.data = Data(Path(self.setting.ui.lineEdit_PSGFilePath.text()),
+ Path(self.setting.ui.lineEdit_XXFilePath.text()),
+ self.ui.comboBox_SelectFile.currentText().split(" ")[0],
+ Conf)
+ opened, info = self.data.OpenFile()
+ if not opened:
+ QMessageBox.warning(self, "警告", info)
+ self.ui.label_Info.setText(info)
+ return
+ else:
+ self.ui.label_PSGmins.setText(str(self.data.PSG_minutes))
+ self.ui.label_XXmins.setText(str(self.data.XX_minutes))
+ self.ui.label_Info.setText(info)
+
+ def __standardize__(self):
+ Conf2 = self.data.Config.copy()
+ Conf2["RawSignal"] = self.ui.checkBox_RawSignal.isChecked()
+ Conf2["PSGConfig"].update({
+ "PSGDelBase": self.ui.checkBox_PSGDelBase.isChecked(),
+ "PSGZScore": self.ui.checkBox_PSGZScore.isChecked(),
+ "Frequency": self.ui.spinBox_PSGFreq.value(),
+ })
+ Conf2["XXConfig"].update({
+ "XXDelBase": self.ui.checkBox_XXDelBase.isChecked(),
+ "XXZScore": self.ui.checkBox_XXZScore.isChecked(),
+ "Frequency": self.ui.spinBox_XXFreq.value(),
+ })
+ self.data.Config = Conf2
+ self.data.Standardize()
+
+
+if __name__ == "__main__":
+ app = QApplication(sys.argv)
+ window = MainWindow()
+ window.show()
+ sys.exit(app.exec())
diff --git a/config.yaml b/config.yaml
new file mode 100644
index 0000000..4ffe01b
--- /dev/null
+++ b/config.yaml
@@ -0,0 +1,17 @@
+ApplyFrequency: 100
+PSGConfig:
+ ABDChannel:
+ Channel: 4
+ auto: true
+ Frequency: 100
+ Path: D:/code/RespCoarseAlignment/Data/PSG
+ THOChannel:
+ Channel: 3
+ auto: true
+RespFilterConfig:
+ HighCut: 0.71
+ LowCut: 0.01
+ Order: 4
+XXConfig:
+ Frequency: 100
+ Path: D:/code/RespCoarseAlignment/Data/XX
diff --git a/ui/Mian.py b/ui/Mian.py
new file mode 100644
index 0000000..34df4db
--- /dev/null
+++ b/ui/Mian.py
@@ -0,0 +1,744 @@
+# -*- coding: utf-8 -*-
+
+################################################################################
+## Form generated from reading UI file 'Mian.ui'
+##
+## Created by: Qt User Interface Compiler version 6.5.2
+##
+## WARNING! All changes made in this file will be lost when recompiling UI file!
+################################################################################
+
+from PySide6.QtCore import (QCoreApplication, QDate, QDateTime, QLocale,
+ QMetaObject, QObject, QPoint, QRect,
+ QSize, QTime, QUrl, Qt)
+from PySide6.QtGui import (QAction, QBrush, QColor, QConicalGradient,
+ QCursor, QFont, QFontDatabase, QGradient,
+ QIcon, QImage, QKeySequence, QLinearGradient,
+ QPainter, QPalette, QPixmap, QRadialGradient,
+ QTransform)
+from PySide6.QtWidgets import (QAbstractSpinBox, QApplication, QCheckBox, QComboBox,
+ QFrame, QGroupBox, QHBoxLayout, QLabel,
+ QMainWindow, QMenu, QMenuBar, QProgressBar,
+ QPushButton, QSizePolicy, QSpacerItem, QSpinBox,
+ QStatusBar, QVBoxLayout, QWidget)
+
+class Ui_mainWindow(object):
+ def setupUi(self, mainWindow):
+ if not mainWindow.objectName():
+ mainWindow.setObjectName(u"mainWindow")
+ mainWindow.resize(1200, 800)
+ sizePolicy = QSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed)
+ sizePolicy.setHorizontalStretch(0)
+ sizePolicy.setVerticalStretch(0)
+ sizePolicy.setHeightForWidth(mainWindow.sizePolicy().hasHeightForWidth())
+ mainWindow.setSizePolicy(sizePolicy)
+ mainWindow.setMinimumSize(QSize(1200, 800))
+ mainWindow.setMaximumSize(QSize(1920, 1080))
+ mainWindow.setSizeIncrement(QSize(4, 3))
+ self.actionDefault_Configuration = QAction(mainWindow)
+ self.actionDefault_Configuration.setObjectName(u"actionDefault_Configuration")
+ self.centralwidget = QWidget(mainWindow)
+ self.centralwidget.setObjectName(u"centralwidget")
+ self.horizontalLayoutWidget = QWidget(self.centralwidget)
+ self.horizontalLayoutWidget.setObjectName(u"horizontalLayoutWidget")
+ self.horizontalLayoutWidget.setGeometry(QRect(10, 10, 1181, 741))
+ self.horizontalLayout = QHBoxLayout(self.horizontalLayoutWidget)
+ self.horizontalLayout.setObjectName(u"horizontalLayout")
+ self.horizontalLayout.setContentsMargins(0, 0, 0, 0)
+ self.verticalLayout = QVBoxLayout()
+ self.verticalLayout.setObjectName(u"verticalLayout")
+ self.groupBox = QGroupBox(self.horizontalLayoutWidget)
+ self.groupBox.setObjectName(u"groupBox")
+ self.verticalLayoutWidget_7 = QWidget(self.groupBox)
+ self.verticalLayoutWidget_7.setObjectName(u"verticalLayoutWidget_7")
+ self.verticalLayoutWidget_7.setGeometry(QRect(10, 20, 274, 71))
+ self.verticalLayout_8 = QVBoxLayout(self.verticalLayoutWidget_7)
+ self.verticalLayout_8.setObjectName(u"verticalLayout_8")
+ self.verticalLayout_8.setContentsMargins(0, 0, 0, 0)
+ self.horizontalLayout_3 = QHBoxLayout()
+ self.horizontalLayout_3.setObjectName(u"horizontalLayout_3")
+ self.comboBox_SelectFile = QComboBox(self.verticalLayoutWidget_7)
+ self.comboBox_SelectFile.setObjectName(u"comboBox_SelectFile")
+ sizePolicy1 = QSizePolicy(QSizePolicy.Preferred, QSizePolicy.Fixed)
+ sizePolicy1.setHorizontalStretch(0)
+ sizePolicy1.setVerticalStretch(0)
+ sizePolicy1.setHeightForWidth(self.comboBox_SelectFile.sizePolicy().hasHeightForWidth())
+ self.comboBox_SelectFile.setSizePolicy(sizePolicy1)
+
+ self.horizontalLayout_3.addWidget(self.comboBox_SelectFile)
+
+ self.pushButton_Refresh = QPushButton(self.verticalLayoutWidget_7)
+ self.pushButton_Refresh.setObjectName(u"pushButton_Refresh")
+ self.pushButton_Refresh.setMaximumSize(QSize(60, 16777215))
+
+ self.horizontalLayout_3.addWidget(self.pushButton_Refresh)
+
+ self.pushButton_OpenFile = QPushButton(self.verticalLayoutWidget_7)
+ self.pushButton_OpenFile.setObjectName(u"pushButton_OpenFile")
+ self.pushButton_OpenFile.setMaximumSize(QSize(60, 16777215))
+
+ self.horizontalLayout_3.addWidget(self.pushButton_OpenFile)
+
+ self.horizontalLayout_3.setStretch(0, 4)
+ self.horizontalLayout_3.setStretch(2, 1)
+
+ self.verticalLayout_8.addLayout(self.horizontalLayout_3)
+
+ self.horizontalLayout_17 = QHBoxLayout()
+ self.horizontalLayout_17.setObjectName(u"horizontalLayout_17")
+ self.label = QLabel(self.verticalLayoutWidget_7)
+ self.label.setObjectName(u"label")
+ sizePolicy2 = QSizePolicy(QSizePolicy.Minimum, QSizePolicy.Preferred)
+ sizePolicy2.setHorizontalStretch(0)
+ sizePolicy2.setVerticalStretch(0)
+ sizePolicy2.setHeightForWidth(self.label.sizePolicy().hasHeightForWidth())
+ self.label.setSizePolicy(sizePolicy2)
+
+ self.horizontalLayout_17.addWidget(self.label)
+
+ self.label_PSGmins = QLabel(self.verticalLayoutWidget_7)
+ self.label_PSGmins.setObjectName(u"label_PSGmins")
+ self.label_PSGmins.setAlignment(Qt.AlignRight|Qt.AlignTrailing|Qt.AlignVCenter)
+
+ self.horizontalLayout_17.addWidget(self.label_PSGmins)
+
+ self.label_8 = QLabel(self.verticalLayoutWidget_7)
+ self.label_8.setObjectName(u"label_8")
+ sizePolicy2.setHeightForWidth(self.label_8.sizePolicy().hasHeightForWidth())
+ self.label_8.setSizePolicy(sizePolicy2)
+
+ self.horizontalLayout_17.addWidget(self.label_8)
+
+ self.label_6 = QLabel(self.verticalLayoutWidget_7)
+ self.label_6.setObjectName(u"label_6")
+ sizePolicy2.setHeightForWidth(self.label_6.sizePolicy().hasHeightForWidth())
+ self.label_6.setSizePolicy(sizePolicy2)
+
+ self.horizontalLayout_17.addWidget(self.label_6)
+
+ self.label_XXmins = QLabel(self.verticalLayoutWidget_7)
+ self.label_XXmins.setObjectName(u"label_XXmins")
+ self.label_XXmins.setToolTipDuration(1)
+ self.label_XXmins.setLayoutDirection(Qt.LeftToRight)
+ self.label_XXmins.setAlignment(Qt.AlignRight|Qt.AlignTrailing|Qt.AlignVCenter)
+
+ self.horizontalLayout_17.addWidget(self.label_XXmins)
+
+ self.label_7 = QLabel(self.verticalLayoutWidget_7)
+ self.label_7.setObjectName(u"label_7")
+ sizePolicy2.setHeightForWidth(self.label_7.sizePolicy().hasHeightForWidth())
+ self.label_7.setSizePolicy(sizePolicy2)
+
+ self.horizontalLayout_17.addWidget(self.label_7)
+
+
+ self.verticalLayout_8.addLayout(self.horizontalLayout_17)
+
+
+ self.verticalLayout.addWidget(self.groupBox)
+
+ self.groupBox_3 = QGroupBox(self.horizontalLayoutWidget)
+ self.groupBox_3.setObjectName(u"groupBox_3")
+ self.verticalLayoutWidget_2 = QWidget(self.groupBox_3)
+ self.verticalLayoutWidget_2.setObjectName(u"verticalLayoutWidget_2")
+ self.verticalLayoutWidget_2.setGeometry(QRect(10, 20, 282, 91))
+ self.verticalLayout_2 = QVBoxLayout(self.verticalLayoutWidget_2)
+ self.verticalLayout_2.setObjectName(u"verticalLayout_2")
+ self.verticalLayout_2.setContentsMargins(0, 0, 0, 0)
+ self.horizontalLayout_4 = QHBoxLayout()
+ self.horizontalLayout_4.setObjectName(u"horizontalLayout_4")
+ self.label_16 = QLabel(self.verticalLayoutWidget_2)
+ self.label_16.setObjectName(u"label_16")
+ sizePolicy3 = QSizePolicy(QSizePolicy.Expanding, QSizePolicy.Fixed)
+ sizePolicy3.setHorizontalStretch(0)
+ sizePolicy3.setVerticalStretch(0)
+ sizePolicy3.setHeightForWidth(self.label_16.sizePolicy().hasHeightForWidth())
+ self.label_16.setSizePolicy(sizePolicy3)
+ self.label_16.setMaximumSize(QSize(65, 16777215))
+
+ self.horizontalLayout_4.addWidget(self.label_16)
+
+ self.spinBox_PSGFreq = QSpinBox(self.verticalLayoutWidget_2)
+ self.spinBox_PSGFreq.setObjectName(u"spinBox_PSGFreq")
+ self.spinBox_PSGFreq.setMaximumSize(QSize(60, 16777215))
+ self.spinBox_PSGFreq.setAlignment(Qt.AlignRight|Qt.AlignTrailing|Qt.AlignVCenter)
+ self.spinBox_PSGFreq.setButtonSymbols(QAbstractSpinBox.NoButtons)
+ self.spinBox_PSGFreq.setMinimum(1)
+ self.spinBox_PSGFreq.setMaximum(1000)
+ self.spinBox_PSGFreq.setValue(100)
+
+ self.horizontalLayout_4.addWidget(self.spinBox_PSGFreq)
+
+ self.label_17 = QLabel(self.verticalLayoutWidget_2)
+ self.label_17.setObjectName(u"label_17")
+
+ self.horizontalLayout_4.addWidget(self.label_17)
+
+ self.label_18 = QLabel(self.verticalLayoutWidget_2)
+ self.label_18.setObjectName(u"label_18")
+ sizePolicy4 = QSizePolicy(QSizePolicy.Minimum, QSizePolicy.Fixed)
+ sizePolicy4.setHorizontalStretch(0)
+ sizePolicy4.setVerticalStretch(0)
+ sizePolicy4.setHeightForWidth(self.label_18.sizePolicy().hasHeightForWidth())
+ self.label_18.setSizePolicy(sizePolicy4)
+ self.label_18.setMaximumSize(QSize(72, 16777215))
+
+ self.horizontalLayout_4.addWidget(self.label_18)
+
+ self.spinBox_XXFreq = QSpinBox(self.verticalLayoutWidget_2)
+ self.spinBox_XXFreq.setObjectName(u"spinBox_XXFreq")
+ self.spinBox_XXFreq.setMaximumSize(QSize(60, 16777215))
+ self.spinBox_XXFreq.setAlignment(Qt.AlignRight|Qt.AlignTrailing|Qt.AlignVCenter)
+ self.spinBox_XXFreq.setButtonSymbols(QAbstractSpinBox.NoButtons)
+ self.spinBox_XXFreq.setMinimum(1)
+ self.spinBox_XXFreq.setMaximum(1000)
+ self.spinBox_XXFreq.setValue(1000)
+
+ self.horizontalLayout_4.addWidget(self.spinBox_XXFreq)
+
+ self.label_19 = QLabel(self.verticalLayoutWidget_2)
+ self.label_19.setObjectName(u"label_19")
+
+ self.horizontalLayout_4.addWidget(self.label_19)
+
+
+ self.verticalLayout_2.addLayout(self.horizontalLayout_4)
+
+ self.horizontalLayout_15 = QHBoxLayout()
+ self.horizontalLayout_15.setObjectName(u"horizontalLayout_15")
+ self.checkBox_PSGDelBase = QCheckBox(self.verticalLayoutWidget_2)
+ self.checkBox_PSGDelBase.setObjectName(u"checkBox_PSGDelBase")
+ self.checkBox_PSGDelBase.setMinimumSize(QSize(85, 0))
+ self.checkBox_PSGDelBase.setMaximumSize(QSize(85, 16777215))
+ self.checkBox_PSGDelBase.setChecked(True)
+
+ self.horizontalLayout_15.addWidget(self.checkBox_PSGDelBase)
+
+ self.checkBox_XXDelBase = QCheckBox(self.verticalLayoutWidget_2)
+ self.checkBox_XXDelBase.setObjectName(u"checkBox_XXDelBase")
+ self.checkBox_XXDelBase.setMinimumSize(QSize(85, 0))
+ self.checkBox_XXDelBase.setMaximumSize(QSize(85, 16777215))
+ self.checkBox_XXDelBase.setChecked(True)
+
+ self.horizontalLayout_15.addWidget(self.checkBox_XXDelBase)
+
+ self.horizontalSpacer_4 = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum)
+
+ self.horizontalLayout_15.addItem(self.horizontalSpacer_4)
+
+ self.checkBox_RawSignal = QCheckBox(self.verticalLayoutWidget_2)
+ self.checkBox_RawSignal.setObjectName(u"checkBox_RawSignal")
+ self.checkBox_RawSignal.setMinimumSize(QSize(90, 0))
+ self.checkBox_RawSignal.setMaximumSize(QSize(90, 16777215))
+
+ self.horizontalLayout_15.addWidget(self.checkBox_RawSignal)
+
+
+ self.verticalLayout_2.addLayout(self.horizontalLayout_15)
+
+ self.horizontalLayout_5 = QHBoxLayout()
+ self.horizontalLayout_5.setObjectName(u"horizontalLayout_5")
+ self.checkBox_PSGZScore = QCheckBox(self.verticalLayoutWidget_2)
+ self.checkBox_PSGZScore.setObjectName(u"checkBox_PSGZScore")
+ self.checkBox_PSGZScore.setMinimumSize(QSize(85, 0))
+ self.checkBox_PSGZScore.setMaximumSize(QSize(85, 16777215))
+ self.checkBox_PSGZScore.setChecked(True)
+
+ self.horizontalLayout_5.addWidget(self.checkBox_PSGZScore)
+
+ self.checkBox_XXZScore = QCheckBox(self.verticalLayoutWidget_2)
+ self.checkBox_XXZScore.setObjectName(u"checkBox_XXZScore")
+ self.checkBox_XXZScore.setMinimumSize(QSize(85, 0))
+ self.checkBox_XXZScore.setMaximumSize(QSize(85, 16777215))
+ self.checkBox_XXZScore.setChecked(True)
+
+ self.horizontalLayout_5.addWidget(self.checkBox_XXZScore)
+
+ self.horizontalSpacer_5 = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum)
+
+ self.horizontalLayout_5.addItem(self.horizontalSpacer_5)
+
+ self.pushButton_Standardize = QPushButton(self.verticalLayoutWidget_2)
+ self.pushButton_Standardize.setObjectName(u"pushButton_Standardize")
+ sizePolicy1.setHeightForWidth(self.pushButton_Standardize.sizePolicy().hasHeightForWidth())
+ self.pushButton_Standardize.setSizePolicy(sizePolicy1)
+ self.pushButton_Standardize.setMinimumSize(QSize(90, 0))
+ self.pushButton_Standardize.setMaximumSize(QSize(90, 16777215))
+
+ self.horizontalLayout_5.addWidget(self.pushButton_Standardize)
+
+
+ self.verticalLayout_2.addLayout(self.horizontalLayout_5)
+
+
+ self.verticalLayout.addWidget(self.groupBox_3)
+
+ self.groupBox_5 = QGroupBox(self.horizontalLayoutWidget)
+ self.groupBox_5.setObjectName(u"groupBox_5")
+ self.verticalLayoutWidget_3 = QWidget(self.groupBox_5)
+ self.verticalLayoutWidget_3.setObjectName(u"verticalLayoutWidget_3")
+ self.verticalLayoutWidget_3.setGeometry(QRect(10, 20, 271, 91))
+ self.verticalLayout_3 = QVBoxLayout(self.verticalLayoutWidget_3)
+ self.verticalLayout_3.setObjectName(u"verticalLayout_3")
+ self.verticalLayout_3.setContentsMargins(0, 0, 0, 0)
+ self.horizontalLayout_6 = QHBoxLayout()
+ self.horizontalLayout_6.setObjectName(u"horizontalLayout_6")
+ self.label_24 = QLabel(self.verticalLayoutWidget_3)
+ self.label_24.setObjectName(u"label_24")
+ sizePolicy.setHeightForWidth(self.label_24.sizePolicy().hasHeightForWidth())
+ self.label_24.setSizePolicy(sizePolicy)
+ self.label_24.setMaximumSize(QSize(65, 16777215))
+
+ self.horizontalLayout_6.addWidget(self.label_24)
+
+ self.spinBox_PSGPre = QSpinBox(self.verticalLayoutWidget_3)
+ self.spinBox_PSGPre.setObjectName(u"spinBox_PSGPre")
+ sizePolicy1.setHeightForWidth(self.spinBox_PSGPre.sizePolicy().hasHeightForWidth())
+ self.spinBox_PSGPre.setSizePolicy(sizePolicy1)
+ self.spinBox_PSGPre.setMinimumSize(QSize(60, 0))
+ self.spinBox_PSGPre.setMaximumSize(QSize(100, 16777215))
+ self.spinBox_PSGPre.setAlignment(Qt.AlignRight|Qt.AlignTrailing|Qt.AlignVCenter)
+ self.spinBox_PSGPre.setButtonSymbols(QAbstractSpinBox.NoButtons)
+ self.spinBox_PSGPre.setMinimum(0)
+ self.spinBox_PSGPre.setMaximum(1000)
+ self.spinBox_PSGPre.setValue(0)
+
+ self.horizontalLayout_6.addWidget(self.spinBox_PSGPre)
+
+ self.horizontalSpacer = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum)
+
+ self.horizontalLayout_6.addItem(self.horizontalSpacer)
+
+ self.label_22 = QLabel(self.verticalLayoutWidget_3)
+ self.label_22.setObjectName(u"label_22")
+ sizePolicy.setHeightForWidth(self.label_22.sizePolicy().hasHeightForWidth())
+ self.label_22.setSizePolicy(sizePolicy)
+ self.label_22.setMaximumSize(QSize(72, 16777215))
+
+ self.horizontalLayout_6.addWidget(self.label_22)
+
+ self.spinBox_PSGAft = QSpinBox(self.verticalLayoutWidget_3)
+ self.spinBox_PSGAft.setObjectName(u"spinBox_PSGAft")
+ sizePolicy1.setHeightForWidth(self.spinBox_PSGAft.sizePolicy().hasHeightForWidth())
+ self.spinBox_PSGAft.setSizePolicy(sizePolicy1)
+ self.spinBox_PSGAft.setMinimumSize(QSize(60, 0))
+ self.spinBox_PSGAft.setMaximumSize(QSize(100, 16777215))
+ self.spinBox_PSGAft.setAlignment(Qt.AlignRight|Qt.AlignTrailing|Qt.AlignVCenter)
+ self.spinBox_PSGAft.setButtonSymbols(QAbstractSpinBox.NoButtons)
+ self.spinBox_PSGAft.setMinimum(0)
+ self.spinBox_PSGAft.setMaximum(1000)
+ self.spinBox_PSGAft.setValue(0)
+
+ self.horizontalLayout_6.addWidget(self.spinBox_PSGAft)
+
+
+ self.verticalLayout_3.addLayout(self.horizontalLayout_6)
+
+ self.horizontalLayout_7 = QHBoxLayout()
+ self.horizontalLayout_7.setObjectName(u"horizontalLayout_7")
+ self.label_21 = QLabel(self.verticalLayoutWidget_3)
+ self.label_21.setObjectName(u"label_21")
+ sizePolicy.setHeightForWidth(self.label_21.sizePolicy().hasHeightForWidth())
+ self.label_21.setSizePolicy(sizePolicy)
+ self.label_21.setMaximumSize(QSize(65, 16777215))
+
+ self.horizontalLayout_7.addWidget(self.label_21)
+
+ self.spinBox_XXPre = QSpinBox(self.verticalLayoutWidget_3)
+ self.spinBox_XXPre.setObjectName(u"spinBox_XXPre")
+ sizePolicy1.setHeightForWidth(self.spinBox_XXPre.sizePolicy().hasHeightForWidth())
+ self.spinBox_XXPre.setSizePolicy(sizePolicy1)
+ self.spinBox_XXPre.setMinimumSize(QSize(60, 0))
+ self.spinBox_XXPre.setMaximumSize(QSize(100, 16777215))
+ self.spinBox_XXPre.setAlignment(Qt.AlignRight|Qt.AlignTrailing|Qt.AlignVCenter)
+ self.spinBox_XXPre.setButtonSymbols(QAbstractSpinBox.NoButtons)
+ self.spinBox_XXPre.setMinimum(0)
+ self.spinBox_XXPre.setMaximum(0)
+ self.spinBox_XXPre.setValue(0)
+
+ self.horizontalLayout_7.addWidget(self.spinBox_XXPre)
+
+ self.horizontalSpacer_2 = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum)
+
+ self.horizontalLayout_7.addItem(self.horizontalSpacer_2)
+
+ self.label_23 = QLabel(self.verticalLayoutWidget_3)
+ self.label_23.setObjectName(u"label_23")
+ sizePolicy.setHeightForWidth(self.label_23.sizePolicy().hasHeightForWidth())
+ self.label_23.setSizePolicy(sizePolicy)
+ self.label_23.setMaximumSize(QSize(72, 16777215))
+
+ self.horizontalLayout_7.addWidget(self.label_23)
+
+ self.spinBox_XXAft = QSpinBox(self.verticalLayoutWidget_3)
+ self.spinBox_XXAft.setObjectName(u"spinBox_XXAft")
+ sizePolicy1.setHeightForWidth(self.spinBox_XXAft.sizePolicy().hasHeightForWidth())
+ self.spinBox_XXAft.setSizePolicy(sizePolicy1)
+ self.spinBox_XXAft.setMinimumSize(QSize(60, 0))
+ self.spinBox_XXAft.setMaximumSize(QSize(60, 16777215))
+ self.spinBox_XXAft.setAlignment(Qt.AlignRight|Qt.AlignTrailing|Qt.AlignVCenter)
+ self.spinBox_XXAft.setButtonSymbols(QAbstractSpinBox.NoButtons)
+ self.spinBox_XXAft.setMinimum(0)
+ self.spinBox_XXAft.setMaximum(1000)
+ self.spinBox_XXAft.setValue(0)
+
+ self.horizontalLayout_7.addWidget(self.spinBox_XXAft)
+
+
+ self.verticalLayout_3.addLayout(self.horizontalLayout_7)
+
+ self.horizontalLayout_8 = QHBoxLayout()
+ self.horizontalLayout_8.setObjectName(u"horizontalLayout_8")
+ self.pushButton_GetPos = QPushButton(self.verticalLayoutWidget_3)
+ self.pushButton_GetPos.setObjectName(u"pushButton_GetPos")
+ sizePolicy1.setHeightForWidth(self.pushButton_GetPos.sizePolicy().hasHeightForWidth())
+ self.pushButton_GetPos.setSizePolicy(sizePolicy1)
+
+ self.horizontalLayout_8.addWidget(self.pushButton_GetPos)
+
+ self.horizontalSpacer_3 = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum)
+
+ self.horizontalLayout_8.addItem(self.horizontalSpacer_3)
+
+ self.pushButton_CutOff = QPushButton(self.verticalLayoutWidget_3)
+ self.pushButton_CutOff.setObjectName(u"pushButton_CutOff")
+ sizePolicy1.setHeightForWidth(self.pushButton_CutOff.sizePolicy().hasHeightForWidth())
+ self.pushButton_CutOff.setSizePolicy(sizePolicy1)
+ self.pushButton_CutOff.setMinimumSize(QSize(85, 0))
+ self.pushButton_CutOff.setMaximumSize(QSize(85, 16777215))
+
+ self.horizontalLayout_8.addWidget(self.pushButton_CutOff)
+
+
+ self.verticalLayout_3.addLayout(self.horizontalLayout_8)
+
+
+ self.verticalLayout.addWidget(self.groupBox_5)
+
+ self.groupBox_4 = QGroupBox(self.horizontalLayoutWidget)
+ self.groupBox_4.setObjectName(u"groupBox_4")
+ self.verticalLayoutWidget_4 = QWidget(self.groupBox_4)
+ self.verticalLayoutWidget_4.setObjectName(u"verticalLayoutWidget_4")
+ self.verticalLayoutWidget_4.setGeometry(QRect(10, 20, 271, 91))
+ self.verticalLayout_4 = QVBoxLayout(self.verticalLayoutWidget_4)
+ self.verticalLayout_4.setObjectName(u"verticalLayout_4")
+ self.verticalLayout_4.setContentsMargins(0, 0, 0, 0)
+ self.horizontalLayout_9 = QHBoxLayout()
+ self.horizontalLayout_9.setObjectName(u"horizontalLayout_9")
+ self.checkBox_PTHO = QCheckBox(self.verticalLayoutWidget_4)
+ self.checkBox_PTHO.setObjectName(u"checkBox_PTHO")
+ self.checkBox_PTHO.setAutoExclusive(True)
+
+ self.horizontalLayout_9.addWidget(self.checkBox_PTHO)
+
+ self.checkBox_NTHO = QCheckBox(self.verticalLayoutWidget_4)
+ self.checkBox_NTHO.setObjectName(u"checkBox_NTHO")
+ self.checkBox_NTHO.setAutoExclusive(True)
+
+ self.horizontalLayout_9.addWidget(self.checkBox_NTHO)
+
+ self.checkBox_PABD = QCheckBox(self.verticalLayoutWidget_4)
+ self.checkBox_PABD.setObjectName(u"checkBox_PABD")
+ self.checkBox_PABD.setAutoExclusive(True)
+
+ self.horizontalLayout_9.addWidget(self.checkBox_PABD)
+
+
+ self.verticalLayout_4.addLayout(self.horizontalLayout_9)
+
+ self.horizontalLayout_11 = QHBoxLayout()
+ self.horizontalLayout_11.setObjectName(u"horizontalLayout_11")
+ self.checkBox_NABD = QCheckBox(self.verticalLayoutWidget_4)
+ self.checkBox_NABD.setObjectName(u"checkBox_NABD")
+ self.checkBox_NABD.setAutoExclusive(True)
+
+ self.horizontalLayout_11.addWidget(self.checkBox_NABD)
+
+ self.checkBox_custom = QCheckBox(self.verticalLayoutWidget_4)
+ self.checkBox_custom.setObjectName(u"checkBox_custom")
+ self.checkBox_custom.setAutoExclusive(True)
+
+ self.horizontalLayout_11.addWidget(self.checkBox_custom)
+
+ self.spinBox_custom = QSpinBox(self.verticalLayoutWidget_4)
+ self.spinBox_custom.setObjectName(u"spinBox_custom")
+ self.spinBox_custom.setEnabled(False)
+ self.spinBox_custom.setAlignment(Qt.AlignRight|Qt.AlignTrailing|Qt.AlignVCenter)
+ self.spinBox_custom.setButtonSymbols(QAbstractSpinBox.NoButtons)
+
+ self.horizontalLayout_11.addWidget(self.spinBox_custom)
+
+
+ self.verticalLayout_4.addLayout(self.horizontalLayout_11)
+
+ self.horizontalLayout_10 = QHBoxLayout()
+ self.horizontalLayout_10.setObjectName(u"horizontalLayout_10")
+ self.label_2 = QLabel(self.verticalLayoutWidget_4)
+ self.label_2.setObjectName(u"label_2")
+ sizePolicy5 = QSizePolicy(QSizePolicy.Fixed, QSizePolicy.Preferred)
+ sizePolicy5.setHorizontalStretch(0)
+ sizePolicy5.setVerticalStretch(0)
+ sizePolicy5.setHeightForWidth(self.label_2.sizePolicy().hasHeightForWidth())
+ self.label_2.setSizePolicy(sizePolicy5)
+
+ self.horizontalLayout_10.addWidget(self.label_2)
+
+ self.label_3 = QLabel(self.verticalLayoutWidget_4)
+ self.label_3.setObjectName(u"label_3")
+ self.label_3.setMinimumSize(QSize(40, 0))
+ self.label_3.setAlignment(Qt.AlignRight|Qt.AlignTrailing|Qt.AlignVCenter)
+
+ self.horizontalLayout_10.addWidget(self.label_3)
+
+ self.horizontalSpacer_7 = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum)
+
+ self.horizontalLayout_10.addItem(self.horizontalSpacer_7)
+
+ self.pushButton_Align = QPushButton(self.verticalLayoutWidget_4)
+ self.pushButton_Align.setObjectName(u"pushButton_Align")
+ self.pushButton_Align.setMinimumSize(QSize(85, 0))
+
+ self.horizontalLayout_10.addWidget(self.pushButton_Align)
+
+
+ self.verticalLayout_4.addLayout(self.horizontalLayout_10)
+
+
+ self.verticalLayout.addWidget(self.groupBox_4)
+
+ self.groupBox_6 = QGroupBox(self.horizontalLayoutWidget)
+ self.groupBox_6.setObjectName(u"groupBox_6")
+ self.verticalLayoutWidget_5 = QWidget(self.groupBox_6)
+ self.verticalLayoutWidget_5.setObjectName(u"verticalLayoutWidget_5")
+ self.verticalLayoutWidget_5.setGeometry(QRect(10, 20, 271, 92))
+ self.verticalLayout_5 = QVBoxLayout(self.verticalLayoutWidget_5)
+ self.verticalLayout_5.setObjectName(u"verticalLayout_5")
+ self.verticalLayout_5.setContentsMargins(0, 0, 0, 0)
+ self.horizontalLayout_13 = QHBoxLayout()
+ self.horizontalLayout_13.setObjectName(u"horizontalLayout_13")
+ self.label_4 = QLabel(self.verticalLayoutWidget_5)
+ self.label_4.setObjectName(u"label_4")
+ sizePolicy5.setHeightForWidth(self.label_4.sizePolicy().hasHeightForWidth())
+ self.label_4.setSizePolicy(sizePolicy5)
+
+ self.horizontalLayout_13.addWidget(self.label_4)
+
+ self.spinBox_SelectEpoch = QSpinBox(self.verticalLayoutWidget_5)
+ self.spinBox_SelectEpoch.setObjectName(u"spinBox_SelectEpoch")
+ sizePolicy1.setHeightForWidth(self.spinBox_SelectEpoch.sizePolicy().hasHeightForWidth())
+ self.spinBox_SelectEpoch.setSizePolicy(sizePolicy1)
+ self.spinBox_SelectEpoch.setMinimumSize(QSize(60, 0))
+ self.spinBox_SelectEpoch.setAlignment(Qt.AlignRight|Qt.AlignTrailing|Qt.AlignVCenter)
+ self.spinBox_SelectEpoch.setButtonSymbols(QAbstractSpinBox.NoButtons)
+
+ self.horizontalLayout_13.addWidget(self.spinBox_SelectEpoch)
+
+ self.horizontalSpacer_6 = QSpacerItem(30, 20, QSizePolicy.Minimum, QSizePolicy.Minimum)
+
+ self.horizontalLayout_13.addItem(self.horizontalSpacer_6)
+
+ self.pushButton_JUMP = QPushButton(self.verticalLayoutWidget_5)
+ self.pushButton_JUMP.setObjectName(u"pushButton_JUMP")
+ sizePolicy.setHeightForWidth(self.pushButton_JUMP.sizePolicy().hasHeightForWidth())
+ self.pushButton_JUMP.setSizePolicy(sizePolicy)
+ self.pushButton_JUMP.setMaximumSize(QSize(85, 16777215))
+
+ self.horizontalLayout_13.addWidget(self.pushButton_JUMP)
+
+
+ self.verticalLayout_5.addLayout(self.horizontalLayout_13)
+
+ self.horizontalLayout_14 = QHBoxLayout()
+ self.horizontalLayout_14.setObjectName(u"horizontalLayout_14")
+ self.pushButton_EM1 = QPushButton(self.verticalLayoutWidget_5)
+ self.pushButton_EM1.setObjectName(u"pushButton_EM1")
+
+ self.horizontalLayout_14.addWidget(self.pushButton_EM1)
+
+ self.pushButton_EM10 = QPushButton(self.verticalLayoutWidget_5)
+ self.pushButton_EM10.setObjectName(u"pushButton_EM10")
+
+ self.horizontalLayout_14.addWidget(self.pushButton_EM10)
+
+ self.pushButton_EM100 = QPushButton(self.verticalLayoutWidget_5)
+ self.pushButton_EM100.setObjectName(u"pushButton_EM100")
+
+ self.horizontalLayout_14.addWidget(self.pushButton_EM100)
+
+
+ self.verticalLayout_5.addLayout(self.horizontalLayout_14)
+
+ self.horizontalLayout_12 = QHBoxLayout()
+ self.horizontalLayout_12.setObjectName(u"horizontalLayout_12")
+ self.pushButton_EP1 = QPushButton(self.verticalLayoutWidget_5)
+ self.pushButton_EP1.setObjectName(u"pushButton_EP1")
+
+ self.horizontalLayout_12.addWidget(self.pushButton_EP1)
+
+ self.pushButton_EP10 = QPushButton(self.verticalLayoutWidget_5)
+ self.pushButton_EP10.setObjectName(u"pushButton_EP10")
+
+ self.horizontalLayout_12.addWidget(self.pushButton_EP10)
+
+ self.pushButton_EP100 = QPushButton(self.verticalLayoutWidget_5)
+ self.pushButton_EP100.setObjectName(u"pushButton_EP100")
+
+ self.horizontalLayout_12.addWidget(self.pushButton_EP100)
+
+
+ self.verticalLayout_5.addLayout(self.horizontalLayout_12)
+
+
+ self.verticalLayout.addWidget(self.groupBox_6)
+
+ self.groupBox_2 = QGroupBox(self.horizontalLayoutWidget)
+ self.groupBox_2.setObjectName(u"groupBox_2")
+ self.pushButton_SaveInfo = QPushButton(self.groupBox_2)
+ self.pushButton_SaveInfo.setObjectName(u"pushButton_SaveInfo")
+ self.pushButton_SaveInfo.setGeometry(QRect(40, 20, 75, 24))
+ self.pushButton_Exit = QPushButton(self.groupBox_2)
+ self.pushButton_Exit.setObjectName(u"pushButton_Exit")
+ self.pushButton_Exit.setGeometry(QRect(160, 20, 75, 24))
+
+ self.verticalLayout.addWidget(self.groupBox_2)
+
+ self.verticalLayout_6 = QVBoxLayout()
+ self.verticalLayout_6.setObjectName(u"verticalLayout_6")
+ self.progressBar = QProgressBar(self.horizontalLayoutWidget)
+ self.progressBar.setObjectName(u"progressBar")
+ self.progressBar.setValue(0)
+
+ self.verticalLayout_6.addWidget(self.progressBar)
+
+ self.label_Info = QLabel(self.horizontalLayoutWidget)
+ self.label_Info.setObjectName(u"label_Info")
+
+ self.verticalLayout_6.addWidget(self.label_Info)
+
+ self.verticalSpacer = QSpacerItem(20, 40, QSizePolicy.Minimum, QSizePolicy.Expanding)
+
+ self.verticalLayout_6.addItem(self.verticalSpacer)
+
+
+ self.verticalLayout.addLayout(self.verticalLayout_6)
+
+ self.verticalLayout.setStretch(0, 3)
+ self.verticalLayout.setStretch(1, 4)
+ self.verticalLayout.setStretch(2, 4)
+ self.verticalLayout.setStretch(3, 4)
+ self.verticalLayout.setStretch(4, 4)
+ self.verticalLayout.setStretch(5, 2)
+ self.verticalLayout.setStretch(6, 3)
+
+ self.horizontalLayout.addLayout(self.verticalLayout)
+
+ self.line = QFrame(self.horizontalLayoutWidget)
+ self.line.setObjectName(u"line")
+ self.line.setFrameShape(QFrame.VLine)
+ self.line.setFrameShadow(QFrame.Sunken)
+
+ self.horizontalLayout.addWidget(self.line)
+
+ self.verticalLayout_9 = QVBoxLayout()
+ self.verticalLayout_9.setObjectName(u"verticalLayout_9")
+ self.label_SPic = QLabel(self.horizontalLayoutWidget)
+ self.label_SPic.setObjectName(u"label_SPic")
+ self.label_SPic.setMaximumSize(QSize(16777215, 100))
+
+ self.verticalLayout_9.addWidget(self.label_SPic)
+
+ self.line_2 = QFrame(self.horizontalLayoutWidget)
+ self.line_2.setObjectName(u"line_2")
+ self.line_2.setFrameShape(QFrame.HLine)
+ self.line_2.setFrameShadow(QFrame.Sunken)
+
+ self.verticalLayout_9.addWidget(self.line_2)
+
+ self.label_Pic = QLabel(self.horizontalLayoutWidget)
+ self.label_Pic.setObjectName(u"label_Pic")
+
+ self.verticalLayout_9.addWidget(self.label_Pic)
+
+ self.verticalLayout_9.setStretch(0, 2)
+ self.verticalLayout_9.setStretch(2, 6)
+
+ self.horizontalLayout.addLayout(self.verticalLayout_9)
+
+ self.horizontalLayout.setStretch(0, 2)
+ self.horizontalLayout.setStretch(2, 6)
+ mainWindow.setCentralWidget(self.centralwidget)
+ self.menubar = QMenuBar(mainWindow)
+ self.menubar.setObjectName(u"menubar")
+ self.menubar.setGeometry(QRect(0, 0, 1200, 22))
+ self.menu = QMenu(self.menubar)
+ self.menu.setObjectName(u"menu")
+ mainWindow.setMenuBar(self.menubar)
+ self.statusbar = QStatusBar(mainWindow)
+ self.statusbar.setObjectName(u"statusbar")
+ mainWindow.setStatusBar(self.statusbar)
+
+ self.menubar.addAction(self.menu.menuAction())
+ self.menu.addAction(self.actionDefault_Configuration)
+
+ self.retranslateUi(mainWindow)
+
+ QMetaObject.connectSlotsByName(mainWindow)
+ # setupUi
+
+ def retranslateUi(self, mainWindow):
+ mainWindow.setWindowTitle(QCoreApplication.translate("mainWindow", u"\u547c\u5438\u4fe1\u53f7\u7c97\u5bf9\u9f50\u7a0b\u5e8f", None))
+ self.actionDefault_Configuration.setText(QCoreApplication.translate("mainWindow", u"Default Configuration", None))
+ self.groupBox.setTitle(QCoreApplication.translate("mainWindow", u"\u6253\u5f00", None))
+ self.pushButton_Refresh.setText(QCoreApplication.translate("mainWindow", u"\u5237\u65b0", None))
+ self.pushButton_OpenFile.setText(QCoreApplication.translate("mainWindow", u"\u6253\u5f00", None))
+ self.label.setText(QCoreApplication.translate("mainWindow", u"PSG\u65f6\u957f", None))
+ self.label_PSGmins.setText(QCoreApplication.translate("mainWindow", u"0", None))
+ self.label_8.setText(QCoreApplication.translate("mainWindow", u"mins", None))
+ self.label_6.setText(QCoreApplication.translate("mainWindow", u"\u5fc3\u6653\u65f6\u957f", None))
+ self.label_XXmins.setText(QCoreApplication.translate("mainWindow", u"0", None))
+ self.label_7.setText(QCoreApplication.translate("mainWindow", u"mins", None))
+ self.groupBox_3.setTitle(QCoreApplication.translate("mainWindow", u"\u6807\u51c6\u5316", None))
+ self.label_16.setText(QCoreApplication.translate("mainWindow", u"PSG\u91c7\u6837\u7387:", None))
+ self.label_17.setText(QCoreApplication.translate("mainWindow", u"Hz", None))
+ self.label_18.setText(QCoreApplication.translate("mainWindow", u"\u5fc3\u6653\u91c7\u6837\u7387:", None))
+ self.label_19.setText(QCoreApplication.translate("mainWindow", u"Hz", None))
+ self.checkBox_PSGDelBase.setText(QCoreApplication.translate("mainWindow", u"PSG\u53bb\u57fa\u7ebf", None))
+ self.checkBox_XXDelBase.setText(QCoreApplication.translate("mainWindow", u"\u5fc3\u6653\u53bb\u57fa\u7ebf", None))
+ self.checkBox_RawSignal.setText(QCoreApplication.translate("mainWindow", u"\u539f\u59cb\u4fe1\u53f7", None))
+ self.checkBox_PSGZScore.setText(QCoreApplication.translate("mainWindow", u"PSG\u6807\u51c6\u5316", None))
+ self.checkBox_XXZScore.setText(QCoreApplication.translate("mainWindow", u"\u5fc3\u6653\u6807\u51c6\u5316", None))
+ self.pushButton_Standardize.setText(QCoreApplication.translate("mainWindow", u"\u5e94\u7528", None))
+ self.groupBox_5.setTitle(QCoreApplication.translate("mainWindow", u"\u622a\u65ad", None))
+ self.label_24.setText(QCoreApplication.translate("mainWindow", u"PSG_PRE:", None))
+ self.label_22.setText(QCoreApplication.translate("mainWindow", u"PSG_AFT", None))
+ self.label_21.setText(QCoreApplication.translate("mainWindow", u"\u5fc3\u6653_PRE:", None))
+ self.label_23.setText(QCoreApplication.translate("mainWindow", u"\u5fc3\u6653_AFT", None))
+ self.pushButton_GetPos.setText(QCoreApplication.translate("mainWindow", u"\u83b7\u53d6\u5bf9\u9f50\u4f4d\u7f6e", None))
+ self.pushButton_CutOff.setText(QCoreApplication.translate("mainWindow", u"\u5e94\u7528", None))
+ self.groupBox_4.setTitle(QCoreApplication.translate("mainWindow", u"\u5bf9\u9f50\u8d77\u59cb\u4f4d\u7f6e", None))
+ self.checkBox_PTHO.setText(QCoreApplication.translate("mainWindow", u"\u5907\u90091", None))
+ self.checkBox_NTHO.setText(QCoreApplication.translate("mainWindow", u"\u5907\u90092", None))
+ self.checkBox_PABD.setText(QCoreApplication.translate("mainWindow", u"\u5907\u90093", None))
+ self.checkBox_NABD.setText(QCoreApplication.translate("mainWindow", u"\u5907\u90094", None))
+ self.checkBox_custom.setText(QCoreApplication.translate("mainWindow", u"\u81ea\u5b9a\u4e49", None))
+ self.label_2.setText(QCoreApplication.translate("mainWindow", u"\u63a8\u8350\u67e5\u770bEpoch:", None))
+ self.label_3.setText(QCoreApplication.translate("mainWindow", u"0", None))
+ self.pushButton_Align.setText(QCoreApplication.translate("mainWindow", u"\u786e\u5b9a", None))
+ self.groupBox_6.setTitle(QCoreApplication.translate("mainWindow", u"\u5c40\u90e8\u89c2\u6d4b", None))
+ self.label_4.setText(QCoreApplication.translate("mainWindow", u"Epoch:", None))
+ self.pushButton_JUMP.setText(QCoreApplication.translate("mainWindow", u"\u8df3\u8f6c", None))
+ self.pushButton_EM1.setText(QCoreApplication.translate("mainWindow", u"Epoch-1", None))
+ self.pushButton_EM10.setText(QCoreApplication.translate("mainWindow", u"Epoch-10", None))
+ self.pushButton_EM100.setText(QCoreApplication.translate("mainWindow", u"Epoch-100", None))
+ self.pushButton_EP1.setText(QCoreApplication.translate("mainWindow", u"Epoch+1", None))
+ self.pushButton_EP10.setText(QCoreApplication.translate("mainWindow", u"Epoch+10", None))
+ self.pushButton_EP100.setText(QCoreApplication.translate("mainWindow", u"Epoch+100", None))
+ self.groupBox_2.setTitle(QCoreApplication.translate("mainWindow", u"\u4fdd\u5b58", None))
+ self.pushButton_SaveInfo.setText(QCoreApplication.translate("mainWindow", u"\u4fdd\u5b58\u53c2\u6570", None))
+ self.pushButton_Exit.setText(QCoreApplication.translate("mainWindow", u"\u9000\u51fa", None))
+ self.label_Info.setText(QCoreApplication.translate("mainWindow", u"Info", None))
+ self.label_SPic.setText(QCoreApplication.translate("mainWindow", u"TextLabel", None))
+ self.label_Pic.setText(QCoreApplication.translate("mainWindow", u"TextLabel", None))
+ self.menu.setTitle(QCoreApplication.translate("mainWindow", u"\u9ed8\u8ba4\u8bbe\u7f6e", None))
+ # retranslateUi
+
diff --git a/ui/Mian.ui b/ui/Mian.ui
new file mode 100644
index 0000000..5020de6
--- /dev/null
+++ b/ui/Mian.ui
@@ -0,0 +1,1242 @@
+
+
+ mainWindow
+
+
+
+ 0
+ 0
+ 1200
+ 800
+
+
+
+
+ 0
+ 0
+
+
+
+
+ 1200
+ 800
+
+
+
+
+ 1920
+ 1080
+
+
+
+
+ 4
+ 3
+
+
+
+ 呼吸信号粗对齐程序
+
+
+
+
+
+ 10
+ 10
+ 1181
+ 741
+
+
+
+ -
+
+
-
+
+
+ 打开
+
+
+
+
+ 10
+ 20
+ 274
+ 71
+
+
+
+
-
+
+
-
+
+
+
+ 0
+ 0
+
+
+
+
+ -
+
+
+
+ 60
+ 16777215
+
+
+
+ 刷新
+
+
+
+ -
+
+
+
+ 60
+ 16777215
+
+
+
+ 打开
+
+
+
+
+
+ -
+
+
-
+
+
+
+ 0
+ 0
+
+
+
+ PSG时长
+
+
+
+ -
+
+
+ 0
+
+
+ Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+ mins
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+ 心晓时长
+
+
+
+ -
+
+
+ 1
+
+
+ Qt::LeftToRight
+
+
+ 0
+
+
+ Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+ mins
+
+
+
+
+
+
+
+
+
+ -
+
+
+ 标准化
+
+
+
+
+ 10
+ 20
+ 282
+ 91
+
+
+
+
-
+
+
-
+
+
+
+ 0
+ 0
+
+
+
+
+ 65
+ 16777215
+
+
+
+ PSG采样率:
+
+
+
+ -
+
+
+
+ 60
+ 16777215
+
+
+
+ Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
+
+
+ QAbstractSpinBox::NoButtons
+
+
+ 1
+
+
+ 1000
+
+
+ 100
+
+
+
+ -
+
+
+ Hz
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 72
+ 16777215
+
+
+
+ 心晓采样率:
+
+
+
+ -
+
+
+
+ 60
+ 16777215
+
+
+
+ Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
+
+
+ QAbstractSpinBox::NoButtons
+
+
+ 1
+
+
+ 1000
+
+
+ 1000
+
+
+
+ -
+
+
+ Hz
+
+
+
+
+
+ -
+
+
-
+
+
+
+ 85
+ 0
+
+
+
+
+ 85
+ 16777215
+
+
+
+ PSG去基线
+
+
+ true
+
+
+
+ -
+
+
+
+ 85
+ 0
+
+
+
+
+ 85
+ 16777215
+
+
+
+ 心晓去基线
+
+
+ true
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ 40
+ 20
+
+
+
+
+ -
+
+
+
+ 90
+ 0
+
+
+
+
+ 90
+ 16777215
+
+
+
+ 原始信号
+
+
+
+
+
+ -
+
+
-
+
+
+
+ 85
+ 0
+
+
+
+
+ 85
+ 16777215
+
+
+
+ PSG标准化
+
+
+ true
+
+
+
+ -
+
+
+
+ 85
+ 0
+
+
+
+
+ 85
+ 16777215
+
+
+
+ 心晓标准化
+
+
+ true
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ 40
+ 20
+
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 90
+ 0
+
+
+
+
+ 90
+ 16777215
+
+
+
+ 应用
+
+
+
+
+
+
+
+
+
+ -
+
+
+ 截断
+
+
+
+
+ 10
+ 20
+ 271
+ 91
+
+
+
+
-
+
+
-
+
+
+
+ 0
+ 0
+
+
+
+
+ 65
+ 16777215
+
+
+
+ PSG_PRE:
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 60
+ 0
+
+
+
+
+ 100
+ 16777215
+
+
+
+ Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
+
+
+ QAbstractSpinBox::NoButtons
+
+
+ 0
+
+
+ 1000
+
+
+ 0
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ 40
+ 20
+
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 72
+ 16777215
+
+
+
+ PSG_AFT
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 60
+ 0
+
+
+
+
+ 100
+ 16777215
+
+
+
+ Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
+
+
+ QAbstractSpinBox::NoButtons
+
+
+ 0
+
+
+ 1000
+
+
+ 0
+
+
+
+
+
+ -
+
+
-
+
+
+
+ 0
+ 0
+
+
+
+
+ 65
+ 16777215
+
+
+
+ 心晓_PRE:
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 60
+ 0
+
+
+
+
+ 100
+ 16777215
+
+
+
+ Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
+
+
+ QAbstractSpinBox::NoButtons
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ 40
+ 20
+
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 72
+ 16777215
+
+
+
+ 心晓_AFT
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 60
+ 0
+
+
+
+
+ 60
+ 16777215
+
+
+
+ Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
+
+
+ QAbstractSpinBox::NoButtons
+
+
+ 0
+
+
+ 1000
+
+
+ 0
+
+
+
+
+
+ -
+
+
-
+
+
+
+ 0
+ 0
+
+
+
+ 获取对齐位置
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ 40
+ 20
+
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 85
+ 0
+
+
+
+
+ 85
+ 16777215
+
+
+
+ 应用
+
+
+
+
+
+
+
+
+
+ -
+
+
+ 对齐起始位置
+
+
+
+
+ 10
+ 20
+ 271
+ 91
+
+
+
+
-
+
+
-
+
+
+ 备选1
+
+
+ true
+
+
+
+ -
+
+
+ 备选2
+
+
+ true
+
+
+
+ -
+
+
+ 备选3
+
+
+ true
+
+
+
+
+
+ -
+
+
-
+
+
+ 备选4
+
+
+ true
+
+
+
+ -
+
+
+ 自定义
+
+
+ true
+
+
+
+ -
+
+
+ false
+
+
+ Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
+
+
+ QAbstractSpinBox::NoButtons
+
+
+
+
+
+ -
+
+
-
+
+
+
+ 0
+ 0
+
+
+
+ 推荐查看Epoch:
+
+
+
+ -
+
+
+
+ 40
+ 0
+
+
+
+ 0
+
+
+ Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ 40
+ 20
+
+
+
+
+ -
+
+
+
+ 85
+ 0
+
+
+
+ 确定
+
+
+
+
+
+
+
+
+
+ -
+
+
+ 局部观测
+
+
+
+
+ 10
+ 20
+ 271
+ 92
+
+
+
+
-
+
+
-
+
+
+
+ 0
+ 0
+
+
+
+ Epoch:
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 60
+ 0
+
+
+
+ Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
+
+
+ QAbstractSpinBox::NoButtons
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Minimum
+
+
+
+ 30
+ 20
+
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 85
+ 16777215
+
+
+
+ 跳转
+
+
+
+
+
+ -
+
+
-
+
+
+ Epoch-1
+
+
+
+ -
+
+
+ Epoch-10
+
+
+
+ -
+
+
+ Epoch-100
+
+
+
+
+
+ -
+
+
-
+
+
+ Epoch+1
+
+
+
+ -
+
+
+ Epoch+10
+
+
+
+ -
+
+
+ Epoch+100
+
+
+
+
+
+
+
+
+
+ -
+
+
+ 保存
+
+
+
+
+ 40
+ 20
+ 75
+ 24
+
+
+
+ 保存参数
+
+
+
+
+
+ 160
+ 20
+ 75
+ 24
+
+
+
+ 退出
+
+
+
+
+ -
+
+
-
+
+
+ 0
+
+
+
+ -
+
+
+ Info
+
+
+
+ -
+
+
+ Qt::Vertical
+
+
+
+ 20
+ 40
+
+
+
+
+
+
+
+
+ -
+
+
+ Qt::Vertical
+
+
+
+ -
+
+
-
+
+
+
+ 16777215
+ 100
+
+
+
+ TextLabel
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ -
+
+
+ TextLabel
+
+
+
+
+
+
+
+
+
+
+
+
+ Default Configuration
+
+
+
+
+
+
diff --git a/ui/setings.py b/ui/setings.py
new file mode 100644
index 0000000..97be965
--- /dev/null
+++ b/ui/setings.py
@@ -0,0 +1,411 @@
+# -*- coding: utf-8 -*-
+
+################################################################################
+## Form generated from reading UI file 'setings.ui'
+##
+## Created by: Qt User Interface Compiler version 6.5.2
+##
+## WARNING! All changes made in this file will be lost when recompiling UI file!
+################################################################################
+
+from PySide6.QtCore import (QCoreApplication, QDate, QDateTime, QLocale,
+ QMetaObject, QObject, QPoint, QRect,
+ QSize, QTime, QUrl, Qt)
+from PySide6.QtGui import (QBrush, QColor, QConicalGradient, QCursor,
+ QFont, QFontDatabase, QGradient, QIcon,
+ QImage, QKeySequence, QLinearGradient, QPainter,
+ QPalette, QPixmap, QRadialGradient, QTransform)
+from PySide6.QtWidgets import (QAbstractSpinBox, QApplication, QCheckBox, QDoubleSpinBox,
+ QGridLayout, QGroupBox, QHBoxLayout, QLabel,
+ QLineEdit, QMainWindow, QMenuBar, QPushButton,
+ QSizePolicy, QSpacerItem, QSpinBox, QStatusBar,
+ QToolButton, QWidget)
+
+class Ui_MainWindow(object):
+ def setupUi(self, MainWindow):
+ if not MainWindow.objectName():
+ MainWindow.setObjectName(u"MainWindow")
+ MainWindow.resize(600, 380)
+ MainWindow.setMinimumSize(QSize(600, 380))
+ MainWindow.setMaximumSize(QSize(600, 380))
+ self.centralwidget = QWidget(MainWindow)
+ self.centralwidget.setObjectName(u"centralwidget")
+ self.pushButton_SaveConfig = QPushButton(self.centralwidget)
+ self.pushButton_SaveConfig.setObjectName(u"pushButton_SaveConfig")
+ self.pushButton_SaveConfig.setGeometry(QRect(180, 310, 75, 24))
+ self.pushButton_Cancel = QPushButton(self.centralwidget)
+ self.pushButton_Cancel.setObjectName(u"pushButton_Cancel")
+ self.pushButton_Cancel.setGeometry(QRect(340, 310, 75, 24))
+ self.gridLayoutWidget = QWidget(self.centralwidget)
+ self.gridLayoutWidget.setObjectName(u"gridLayoutWidget")
+ self.gridLayoutWidget.setGeometry(QRect(20, 10, 561, 281))
+ self.gridLayout = QGridLayout(self.gridLayoutWidget)
+ self.gridLayout.setObjectName(u"gridLayout")
+ self.gridLayout.setContentsMargins(0, 0, 0, 0)
+ self.groupBox_2 = QGroupBox(self.gridLayoutWidget)
+ self.groupBox_2.setObjectName(u"groupBox_2")
+ self.gridLayoutWidget_2 = QWidget(self.groupBox_2)
+ self.gridLayoutWidget_2.setObjectName(u"gridLayoutWidget_2")
+ self.gridLayoutWidget_2.setGeometry(QRect(10, 20, 541, 61))
+ self.gridLayout_3 = QGridLayout(self.gridLayoutWidget_2)
+ self.gridLayout_3.setObjectName(u"gridLayout_3")
+ self.gridLayout_3.setContentsMargins(0, 0, 0, 0)
+ self.horizontalLayout_3 = QHBoxLayout()
+ self.horizontalLayout_3.setObjectName(u"horizontalLayout_3")
+ self.label_2 = QLabel(self.gridLayoutWidget_2)
+ self.label_2.setObjectName(u"label_2")
+ sizePolicy = QSizePolicy(QSizePolicy.Expanding, QSizePolicy.Fixed)
+ sizePolicy.setHorizontalStretch(0)
+ sizePolicy.setVerticalStretch(0)
+ sizePolicy.setHeightForWidth(self.label_2.sizePolicy().hasHeightForWidth())
+ self.label_2.setSizePolicy(sizePolicy)
+ self.label_2.setMaximumSize(QSize(72, 16777215))
+
+ self.horizontalLayout_3.addWidget(self.label_2)
+
+ self.spinBox_PSGDefaultFreq = QSpinBox(self.gridLayoutWidget_2)
+ self.spinBox_PSGDefaultFreq.setObjectName(u"spinBox_PSGDefaultFreq")
+ self.spinBox_PSGDefaultFreq.setMaximumSize(QSize(60, 16777215))
+ self.spinBox_PSGDefaultFreq.setAlignment(Qt.AlignRight|Qt.AlignTrailing|Qt.AlignVCenter)
+ self.spinBox_PSGDefaultFreq.setButtonSymbols(QAbstractSpinBox.NoButtons)
+ self.spinBox_PSGDefaultFreq.setMinimum(1)
+ self.spinBox_PSGDefaultFreq.setMaximum(1000)
+ self.spinBox_PSGDefaultFreq.setValue(100)
+
+ self.horizontalLayout_3.addWidget(self.spinBox_PSGDefaultFreq)
+
+ self.label_3 = QLabel(self.gridLayoutWidget_2)
+ self.label_3.setObjectName(u"label_3")
+
+ self.horizontalLayout_3.addWidget(self.label_3)
+
+ self.horizontalSpacer_3 = QSpacerItem(20, 20, QSizePolicy.Minimum, QSizePolicy.Minimum)
+
+ self.horizontalLayout_3.addItem(self.horizontalSpacer_3)
+
+ self.label_4 = QLabel(self.gridLayoutWidget_2)
+ self.label_4.setObjectName(u"label_4")
+ sizePolicy1 = QSizePolicy(QSizePolicy.Minimum, QSizePolicy.Preferred)
+ sizePolicy1.setHorizontalStretch(0)
+ sizePolicy1.setVerticalStretch(0)
+ sizePolicy1.setHeightForWidth(self.label_4.sizePolicy().hasHeightForWidth())
+ self.label_4.setSizePolicy(sizePolicy1)
+ self.label_4.setMaximumSize(QSize(50, 16777215))
+
+ self.horizontalLayout_3.addWidget(self.label_4)
+
+ self.checkBox_THOautoChannel = QCheckBox(self.gridLayoutWidget_2)
+ self.checkBox_THOautoChannel.setObjectName(u"checkBox_THOautoChannel")
+ self.checkBox_THOautoChannel.setMaximumSize(QSize(45, 16777215))
+ self.checkBox_THOautoChannel.setChecked(True)
+
+ self.horizontalLayout_3.addWidget(self.checkBox_THOautoChannel)
+
+ self.spinBox_THOcustomChannel = QSpinBox(self.gridLayoutWidget_2)
+ self.spinBox_THOcustomChannel.setObjectName(u"spinBox_THOcustomChannel")
+ self.spinBox_THOcustomChannel.setEnabled(False)
+ self.spinBox_THOcustomChannel.setMaximumSize(QSize(40, 16777215))
+ font = QFont()
+ font.setUnderline(True)
+ self.spinBox_THOcustomChannel.setFont(font)
+ self.spinBox_THOcustomChannel.setAlignment(Qt.AlignCenter)
+ self.spinBox_THOcustomChannel.setReadOnly(True)
+ self.spinBox_THOcustomChannel.setButtonSymbols(QAbstractSpinBox.NoButtons)
+ self.spinBox_THOcustomChannel.setAccelerated(True)
+ self.spinBox_THOcustomChannel.setValue(3)
+
+ self.horizontalLayout_3.addWidget(self.spinBox_THOcustomChannel)
+
+ self.horizontalSpacer = QSpacerItem(20, 20, QSizePolicy.Minimum, QSizePolicy.Minimum)
+
+ self.horizontalLayout_3.addItem(self.horizontalSpacer)
+
+ self.label_5 = QLabel(self.gridLayoutWidget_2)
+ self.label_5.setObjectName(u"label_5")
+ sizePolicy1.setHeightForWidth(self.label_5.sizePolicy().hasHeightForWidth())
+ self.label_5.setSizePolicy(sizePolicy1)
+ self.label_5.setMaximumSize(QSize(50, 16777215))
+
+ self.horizontalLayout_3.addWidget(self.label_5)
+
+ self.checkBox_ABDautoChannel = QCheckBox(self.gridLayoutWidget_2)
+ self.checkBox_ABDautoChannel.setObjectName(u"checkBox_ABDautoChannel")
+ self.checkBox_ABDautoChannel.setMaximumSize(QSize(45, 16777215))
+ self.checkBox_ABDautoChannel.setChecked(True)
+
+ self.horizontalLayout_3.addWidget(self.checkBox_ABDautoChannel)
+
+ self.spinBox_ABDcustomChannel = QSpinBox(self.gridLayoutWidget_2)
+ self.spinBox_ABDcustomChannel.setObjectName(u"spinBox_ABDcustomChannel")
+ self.spinBox_ABDcustomChannel.setEnabled(False)
+ self.spinBox_ABDcustomChannel.setMaximumSize(QSize(40, 16777215))
+ self.spinBox_ABDcustomChannel.setFont(font)
+ self.spinBox_ABDcustomChannel.setAlignment(Qt.AlignCenter)
+ self.spinBox_ABDcustomChannel.setReadOnly(True)
+ self.spinBox_ABDcustomChannel.setButtonSymbols(QAbstractSpinBox.NoButtons)
+ self.spinBox_ABDcustomChannel.setValue(4)
+
+ self.horizontalLayout_3.addWidget(self.spinBox_ABDcustomChannel)
+
+ self.horizontalSpacer_2 = QSpacerItem(30, 20, QSizePolicy.Minimum, QSizePolicy.Minimum)
+
+ self.horizontalLayout_3.addItem(self.horizontalSpacer_2)
+
+
+ self.gridLayout_3.addLayout(self.horizontalLayout_3, 2, 2, 1, 1)
+
+ self.horizontalLayout_2 = QHBoxLayout()
+ self.horizontalLayout_2.setObjectName(u"horizontalLayout_2")
+ self.label = QLabel(self.gridLayoutWidget_2)
+ self.label.setObjectName(u"label")
+ sizePolicy1.setHeightForWidth(self.label.sizePolicy().hasHeightForWidth())
+ self.label.setSizePolicy(sizePolicy1)
+ self.label.setMaximumSize(QSize(72, 16777215))
+
+ self.horizontalLayout_2.addWidget(self.label)
+
+ self.lineEdit_PSGFilePath = QLineEdit(self.gridLayoutWidget_2)
+ self.lineEdit_PSGFilePath.setObjectName(u"lineEdit_PSGFilePath")
+
+ self.horizontalLayout_2.addWidget(self.lineEdit_PSGFilePath)
+
+ self.toolButton_PSGFilePath = QToolButton(self.gridLayoutWidget_2)
+ self.toolButton_PSGFilePath.setObjectName(u"toolButton_PSGFilePath")
+ self.toolButton_PSGFilePath.setMinimumSize(QSize(30, 0))
+ self.toolButton_PSGFilePath.setMaximumSize(QSize(16777215, 16777215))
+
+ self.horizontalLayout_2.addWidget(self.toolButton_PSGFilePath)
+
+
+ self.gridLayout_3.addLayout(self.horizontalLayout_2, 1, 2, 1, 1)
+
+
+ self.gridLayout.addWidget(self.groupBox_2, 0, 0, 1, 1)
+
+ self.groupBox_3 = QGroupBox(self.gridLayoutWidget)
+ self.groupBox_3.setObjectName(u"groupBox_3")
+ self.gridLayoutWidget_3 = QWidget(self.groupBox_3)
+ self.gridLayoutWidget_3.setObjectName(u"gridLayoutWidget_3")
+ self.gridLayoutWidget_3.setGeometry(QRect(10, 20, 541, 61))
+ self.gridLayout_4 = QGridLayout(self.gridLayoutWidget_3)
+ self.gridLayout_4.setObjectName(u"gridLayout_4")
+ self.gridLayout_4.setContentsMargins(0, 0, 0, 0)
+ self.horizontalLayout_5 = QHBoxLayout()
+ self.horizontalLayout_5.setObjectName(u"horizontalLayout_5")
+ self.label_7 = QLabel(self.gridLayoutWidget_3)
+ self.label_7.setObjectName(u"label_7")
+ sizePolicy2 = QSizePolicy(QSizePolicy.Minimum, QSizePolicy.Fixed)
+ sizePolicy2.setHorizontalStretch(0)
+ sizePolicy2.setVerticalStretch(0)
+ sizePolicy2.setHeightForWidth(self.label_7.sizePolicy().hasHeightForWidth())
+ self.label_7.setSizePolicy(sizePolicy2)
+ self.label_7.setMaximumSize(QSize(72, 16777215))
+
+ self.horizontalLayout_5.addWidget(self.label_7)
+
+ self.spinBox_XXDefaultFreq = QSpinBox(self.gridLayoutWidget_3)
+ self.spinBox_XXDefaultFreq.setObjectName(u"spinBox_XXDefaultFreq")
+ self.spinBox_XXDefaultFreq.setMaximumSize(QSize(60, 16777215))
+ self.spinBox_XXDefaultFreq.setAlignment(Qt.AlignRight|Qt.AlignTrailing|Qt.AlignVCenter)
+ self.spinBox_XXDefaultFreq.setButtonSymbols(QAbstractSpinBox.NoButtons)
+ self.spinBox_XXDefaultFreq.setMinimum(1)
+ self.spinBox_XXDefaultFreq.setMaximum(1000)
+ self.spinBox_XXDefaultFreq.setValue(1000)
+
+ self.horizontalLayout_5.addWidget(self.spinBox_XXDefaultFreq)
+
+ self.label_8 = QLabel(self.gridLayoutWidget_3)
+ self.label_8.setObjectName(u"label_8")
+
+ self.horizontalLayout_5.addWidget(self.label_8)
+
+
+ self.gridLayout_4.addLayout(self.horizontalLayout_5, 2, 2, 1, 1)
+
+ self.horizontalLayout_4 = QHBoxLayout()
+ self.horizontalLayout_4.setObjectName(u"horizontalLayout_4")
+ self.label_6 = QLabel(self.gridLayoutWidget_3)
+ self.label_6.setObjectName(u"label_6")
+ sizePolicy1.setHeightForWidth(self.label_6.sizePolicy().hasHeightForWidth())
+ self.label_6.setSizePolicy(sizePolicy1)
+ self.label_6.setMaximumSize(QSize(72, 16777215))
+
+ self.horizontalLayout_4.addWidget(self.label_6)
+
+ self.lineEdit_XXFilePath = QLineEdit(self.gridLayoutWidget_3)
+ self.lineEdit_XXFilePath.setObjectName(u"lineEdit_XXFilePath")
+
+ self.horizontalLayout_4.addWidget(self.lineEdit_XXFilePath)
+
+ self.toolButton_XXFilePath = QToolButton(self.gridLayoutWidget_3)
+ self.toolButton_XXFilePath.setObjectName(u"toolButton_XXFilePath")
+ self.toolButton_XXFilePath.setMinimumSize(QSize(30, 0))
+
+ self.horizontalLayout_4.addWidget(self.toolButton_XXFilePath)
+
+
+ self.gridLayout_4.addLayout(self.horizontalLayout_4, 1, 2, 1, 1)
+
+
+ self.gridLayout.addWidget(self.groupBox_3, 1, 0, 1, 1)
+
+ self.groupBox = QGroupBox(self.gridLayoutWidget)
+ self.groupBox.setObjectName(u"groupBox")
+ self.horizontalLayoutWidget_4 = QWidget(self.groupBox)
+ self.horizontalLayoutWidget_4.setObjectName(u"horizontalLayoutWidget_4")
+ self.horizontalLayoutWidget_4.setGeometry(QRect(10, 10, 541, 31))
+ self.horizontalLayout_6 = QHBoxLayout(self.horizontalLayoutWidget_4)
+ self.horizontalLayout_6.setObjectName(u"horizontalLayout_6")
+ self.horizontalLayout_6.setContentsMargins(0, 0, 0, 0)
+ self.label_14 = QLabel(self.horizontalLayoutWidget_4)
+ self.label_14.setObjectName(u"label_14")
+
+ self.horizontalLayout_6.addWidget(self.label_14)
+
+ self.QSpinBox_ApplyFre = QSpinBox(self.horizontalLayoutWidget_4)
+ self.QSpinBox_ApplyFre.setObjectName(u"QSpinBox_ApplyFre")
+ self.QSpinBox_ApplyFre.setAlignment(Qt.AlignRight|Qt.AlignTrailing|Qt.AlignVCenter)
+ self.QSpinBox_ApplyFre.setButtonSymbols(QAbstractSpinBox.NoButtons)
+ self.QSpinBox_ApplyFre.setMaximum(100)
+ self.QSpinBox_ApplyFre.setValue(5)
+
+ self.horizontalLayout_6.addWidget(self.QSpinBox_ApplyFre)
+
+ self.label_15 = QLabel(self.horizontalLayoutWidget_4)
+ self.label_15.setObjectName(u"label_15")
+
+ self.horizontalLayout_6.addWidget(self.label_15)
+
+ self.horizontalSpacer_8 = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum)
+
+ self.horizontalLayout_6.addItem(self.horizontalSpacer_8)
+
+
+ self.gridLayout.addWidget(self.groupBox, 3, 0, 1, 1)
+
+ self.groupBox_4 = QGroupBox(self.gridLayoutWidget)
+ self.groupBox_4.setObjectName(u"groupBox_4")
+ self.horizontalLayoutWidget = QWidget(self.groupBox_4)
+ self.horizontalLayoutWidget.setObjectName(u"horizontalLayoutWidget")
+ self.horizontalLayoutWidget.setGeometry(QRect(10, 20, 541, 31))
+ self.horizontalLayout = QHBoxLayout(self.horizontalLayoutWidget)
+ self.horizontalLayout.setObjectName(u"horizontalLayout")
+ self.horizontalLayout.setContentsMargins(0, 0, 0, 0)
+ self.horizontalSpacer_6 = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum)
+
+ self.horizontalLayout.addItem(self.horizontalSpacer_6)
+
+ self.label_11 = QLabel(self.horizontalLayoutWidget)
+ self.label_11.setObjectName(u"label_11")
+
+ self.horizontalLayout.addWidget(self.label_11)
+
+ self.spinBox_ButterOrder = QSpinBox(self.horizontalLayoutWidget)
+ self.spinBox_ButterOrder.setObjectName(u"spinBox_ButterOrder")
+ self.spinBox_ButterOrder.setAlignment(Qt.AlignRight|Qt.AlignTrailing|Qt.AlignVCenter)
+ self.spinBox_ButterOrder.setButtonSymbols(QAbstractSpinBox.NoButtons)
+ self.spinBox_ButterOrder.setMaximum(10)
+ self.spinBox_ButterOrder.setValue(4)
+
+ self.horizontalLayout.addWidget(self.spinBox_ButterOrder)
+
+ self.horizontalSpacer_4 = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum)
+
+ self.horizontalLayout.addItem(self.horizontalSpacer_4)
+
+ self.label_10 = QLabel(self.horizontalLayoutWidget)
+ self.label_10.setObjectName(u"label_10")
+
+ self.horizontalLayout.addWidget(self.label_10)
+
+ self.doubleSpinBox_ButterLowPassFreq = QDoubleSpinBox(self.horizontalLayoutWidget)
+ self.doubleSpinBox_ButterLowPassFreq.setObjectName(u"doubleSpinBox_ButterLowPassFreq")
+ self.doubleSpinBox_ButterLowPassFreq.setAlignment(Qt.AlignRight|Qt.AlignTrailing|Qt.AlignVCenter)
+ self.doubleSpinBox_ButterLowPassFreq.setButtonSymbols(QAbstractSpinBox.NoButtons)
+ self.doubleSpinBox_ButterLowPassFreq.setMaximum(10.000000000000000)
+ self.doubleSpinBox_ButterLowPassFreq.setValue(0.010000000000000)
+
+ self.horizontalLayout.addWidget(self.doubleSpinBox_ButterLowPassFreq)
+
+ self.label_12 = QLabel(self.horizontalLayoutWidget)
+ self.label_12.setObjectName(u"label_12")
+
+ self.horizontalLayout.addWidget(self.label_12)
+
+ self.horizontalSpacer_5 = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum)
+
+ self.horizontalLayout.addItem(self.horizontalSpacer_5)
+
+ self.label_9 = QLabel(self.horizontalLayoutWidget)
+ self.label_9.setObjectName(u"label_9")
+
+ self.horizontalLayout.addWidget(self.label_9)
+
+ self.doubleSpinBox_ButterHighPassFreq = QDoubleSpinBox(self.horizontalLayoutWidget)
+ self.doubleSpinBox_ButterHighPassFreq.setObjectName(u"doubleSpinBox_ButterHighPassFreq")
+ self.doubleSpinBox_ButterHighPassFreq.setAlignment(Qt.AlignRight|Qt.AlignTrailing|Qt.AlignVCenter)
+ self.doubleSpinBox_ButterHighPassFreq.setButtonSymbols(QAbstractSpinBox.NoButtons)
+ self.doubleSpinBox_ButterHighPassFreq.setMaximum(10.000000000000000)
+ self.doubleSpinBox_ButterHighPassFreq.setValue(0.700000000000000)
+
+ self.horizontalLayout.addWidget(self.doubleSpinBox_ButterHighPassFreq)
+
+ self.label_13 = QLabel(self.horizontalLayoutWidget)
+ self.label_13.setObjectName(u"label_13")
+
+ self.horizontalLayout.addWidget(self.label_13)
+
+ self.horizontalSpacer_7 = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum)
+
+ self.horizontalLayout.addItem(self.horizontalSpacer_7)
+
+
+ self.gridLayout.addWidget(self.groupBox_4, 2, 0, 1, 1)
+
+ self.gridLayout.setRowStretch(0, 3)
+ self.gridLayout.setRowStretch(1, 3)
+ self.gridLayout.setRowStretch(2, 2)
+ self.gridLayout.setRowStretch(3, 2)
+ MainWindow.setCentralWidget(self.centralwidget)
+ self.menubar = QMenuBar(MainWindow)
+ self.menubar.setObjectName(u"menubar")
+ self.menubar.setGeometry(QRect(0, 0, 600, 21))
+ MainWindow.setMenuBar(self.menubar)
+ self.statusbar = QStatusBar(MainWindow)
+ self.statusbar.setObjectName(u"statusbar")
+ MainWindow.setStatusBar(self.statusbar)
+
+ self.retranslateUi(MainWindow)
+
+ QMetaObject.connectSlotsByName(MainWindow)
+ # setupUi
+
+ def retranslateUi(self, MainWindow):
+ MainWindow.setWindowTitle(QCoreApplication.translate("MainWindow", u"MainWindow", None))
+ self.pushButton_SaveConfig.setText(QCoreApplication.translate("MainWindow", u"\u4fdd\u5b58", None))
+ self.pushButton_Cancel.setText(QCoreApplication.translate("MainWindow", u"\u53d6\u6d88", None))
+ self.groupBox_2.setTitle(QCoreApplication.translate("MainWindow", u"PSG\u8bbe\u7f6e", None))
+ self.label_2.setText(QCoreApplication.translate("MainWindow", u"\u9ed8\u8ba4\u91c7\u6837\u7387:", None))
+ self.label_3.setText(QCoreApplication.translate("MainWindow", u"Hz", None))
+ self.label_4.setText(QCoreApplication.translate("MainWindow", u"THO\u4fe1\u9053", None))
+ self.checkBox_THOautoChannel.setText(QCoreApplication.translate("MainWindow", u"auto", None))
+ self.label_5.setText(QCoreApplication.translate("MainWindow", u"ABD\u4fe1\u9053", None))
+ self.checkBox_ABDautoChannel.setText(QCoreApplication.translate("MainWindow", u"auto", None))
+ self.label.setText(QCoreApplication.translate("MainWindow", u"PSG\u6587\u4ef6\u5939\uff1a", None))
+ self.toolButton_PSGFilePath.setText(QCoreApplication.translate("MainWindow", u"...", None))
+ self.groupBox_3.setTitle(QCoreApplication.translate("MainWindow", u"\u5fc3\u6653\u8bbe\u7f6e", None))
+ self.label_7.setText(QCoreApplication.translate("MainWindow", u"\u9ed8\u8ba4\u91c7\u6837\u7387:", None))
+ self.label_8.setText(QCoreApplication.translate("MainWindow", u"Hz", None))
+ self.label_6.setText(QCoreApplication.translate("MainWindow", u"\u5fc3\u6653\u6587\u4ef6\u5939\uff1a", None))
+ self.toolButton_XXFilePath.setText(QCoreApplication.translate("MainWindow", u"...", None))
+ self.groupBox.setTitle(QCoreApplication.translate("MainWindow", u"\u663e\u793a\u8bbe\u7f6e", None))
+ self.label_14.setText(QCoreApplication.translate("MainWindow", u"\u663e\u793a\u6570\u636e\u9891\u7387\uff1a", None))
+ self.label_15.setText(QCoreApplication.translate("MainWindow", u"Hz", None))
+ self.groupBox_4.setTitle(QCoreApplication.translate("MainWindow", u"\u547c\u5438\u63d0\u53d6\u6ee4\u6ce2\u5668\u8bbe\u7f6e", None))
+ self.label_11.setText(QCoreApplication.translate("MainWindow", u"\u9636\u6570", None))
+ self.label_10.setText(QCoreApplication.translate("MainWindow", u"\u4f4e\u901a\u622a\u6b62\u9891\u7387", None))
+ self.label_12.setText(QCoreApplication.translate("MainWindow", u"Hz", None))
+ self.label_9.setText(QCoreApplication.translate("MainWindow", u"\u9ad8\u901a\u622a\u6b62\u9891\u7387", None))
+ self.label_13.setText(QCoreApplication.translate("MainWindow", u"Hz", None))
+ # retranslateUi
+
diff --git a/ui/setings.ui b/ui/setings.ui
new file mode 100644
index 0000000..3700c09
--- /dev/null
+++ b/ui/setings.ui
@@ -0,0 +1,711 @@
+
+
+ MainWindow
+
+
+
+ 0
+ 0
+ 600
+ 380
+
+
+
+
+ 600
+ 380
+
+
+
+
+ 600
+ 380
+
+
+
+ MainWindow
+
+
+
+
+
+ 180
+ 310
+ 75
+ 24
+
+
+
+ 保存
+
+
+
+
+
+ 340
+ 310
+ 75
+ 24
+
+
+
+ 取消
+
+
+
+
+
+ 20
+ 10
+ 561
+ 281
+
+
+
+ -
+
+
+ PSG设置
+
+
+
+
+ 10
+ 20
+ 541
+ 61
+
+
+
+
-
+
+
-
+
+
+
+ 0
+ 0
+
+
+
+
+ 72
+ 16777215
+
+
+
+ 默认采样率:
+
+
+
+ -
+
+
+
+ 60
+ 16777215
+
+
+
+ Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
+
+
+ QAbstractSpinBox::NoButtons
+
+
+ 1
+
+
+ 1000
+
+
+ 100
+
+
+
+ -
+
+
+ Hz
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Minimum
+
+
+
+ 20
+ 20
+
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 50
+ 16777215
+
+
+
+ THO信道
+
+
+
+ -
+
+
+
+ 45
+ 16777215
+
+
+
+ auto
+
+
+ true
+
+
+
+ -
+
+
+ false
+
+
+
+ 40
+ 16777215
+
+
+
+
+ true
+
+
+
+ Qt::AlignCenter
+
+
+ true
+
+
+ QAbstractSpinBox::NoButtons
+
+
+ true
+
+
+ 3
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Minimum
+
+
+
+ 20
+ 20
+
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 50
+ 16777215
+
+
+
+ ABD信道
+
+
+
+ -
+
+
+
+ 45
+ 16777215
+
+
+
+ auto
+
+
+ true
+
+
+
+ -
+
+
+ false
+
+
+
+ 40
+ 16777215
+
+
+
+
+ true
+
+
+
+ Qt::AlignCenter
+
+
+ true
+
+
+ QAbstractSpinBox::NoButtons
+
+
+ 4
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Minimum
+
+
+
+ 30
+ 20
+
+
+
+
+
+
+ -
+
+
-
+
+
+
+ 0
+ 0
+
+
+
+
+ 72
+ 16777215
+
+
+
+ PSG文件夹:
+
+
+
+ -
+
+
+ -
+
+
+
+ 30
+ 0
+
+
+
+
+ 16777215
+ 16777215
+
+
+
+ ...
+
+
+
+
+
+
+
+
+
+ -
+
+
+ 心晓设置
+
+
+
+
+ 10
+ 20
+ 541
+ 61
+
+
+
+
-
+
+
-
+
+
+
+ 0
+ 0
+
+
+
+
+ 72
+ 16777215
+
+
+
+ 默认采样率:
+
+
+
+ -
+
+
+
+ 60
+ 16777215
+
+
+
+ Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
+
+
+ QAbstractSpinBox::NoButtons
+
+
+ 1
+
+
+ 1000
+
+
+ 1000
+
+
+
+ -
+
+
+ Hz
+
+
+
+
+
+ -
+
+
-
+
+
+
+ 0
+ 0
+
+
+
+
+ 72
+ 16777215
+
+
+
+ 心晓文件夹:
+
+
+
+ -
+
+
+ -
+
+
+
+ 30
+ 0
+
+
+
+ ...
+
+
+
+
+
+
+
+
+
+ -
+
+
+ 显示设置
+
+
+
+
+ 10
+ 10
+ 541
+ 31
+
+
+
+
-
+
+
+ 显示数据频率:
+
+
+
+ -
+
+
+ Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
+
+
+ QAbstractSpinBox::NoButtons
+
+
+ 100
+
+
+ 5
+
+
+
+ -
+
+
+ Hz
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ 40
+ 20
+
+
+
+
+
+
+
+
+ -
+
+
+ 呼吸提取滤波器设置
+
+
+
+
+ 10
+ 20
+ 541
+ 31
+
+
+
+
-
+
+
+ Qt::Horizontal
+
+
+
+ 40
+ 20
+
+
+
+
+ -
+
+
+ 阶数
+
+
+
+ -
+
+
+ Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
+
+
+ QAbstractSpinBox::NoButtons
+
+
+ 10
+
+
+ 4
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ 40
+ 20
+
+
+
+
+ -
+
+
+ 低通截止频率
+
+
+
+ -
+
+
+ Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
+
+
+ QAbstractSpinBox::NoButtons
+
+
+ 10.000000000000000
+
+
+ 0.010000000000000
+
+
+
+ -
+
+
+ Hz
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ 40
+ 20
+
+
+
+
+ -
+
+
+ 高通截止频率
+
+
+
+ -
+
+
+ Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
+
+
+ QAbstractSpinBox::NoButtons
+
+
+ 10.000000000000000
+
+
+ 0.700000000000000
+
+
+
+ -
+
+
+ Hz
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ 40
+ 20
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+