完成打开、标准化、截断功能

This commit is contained in:
andrew 2023-09-21 09:29:08 +08:00
parent 1c3e4efcc4
commit e96d401fb0
4 changed files with 864 additions and 295 deletions

View File

@ -10,13 +10,15 @@
import sys
from pathlib import Path
import mne
import pyedflib
import numpy as np
import pandas as pd
from PySide6.QtWidgets import QApplication, QMainWindow, QFileDialog, QMessageBox
from PySide6.QtCore import QFile
from PySide6.QtGui import QPixmap, QImage
from PySide6.QtWidgets import QApplication, QMainWindow, QFileDialog, QMessageBox, QWidget, QPushButton
from matplotlib.backends.backend_agg import FigureCanvasAgg as FigureCanvas
from matplotlib.figure import Figure
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
@ -47,6 +49,41 @@ Conf = {
"ApplyFrequency": 5
}
ButtonState = {
"Default": {
"pushButton_Refresh": True,
"pushButton_OpenFile": True,
"pushButton_Standardize": False,
"pushButton_CutOff": False,
"pushButton_GetPos": False,
"pushButton_Align": False,
"pushButton_JUMP": False,
"pushButton_EM1": False,
"pushButton_EM10": False,
"pushButton_EM100": False,
"pushButton_EP1": False,
"pushButton_EP10": False,
"pushButton_EP100": False,
"pushButton_SaveInfo": False,
"pushButton_Exit": True},
"Current": {
"pushButton_Refresh": True,
"pushButton_OpenFile": True,
"pushButton_Standardize": False,
"pushButton_CutOff": False,
"pushButton_GetPos": False,
"pushButton_Align": False,
"pushButton_JUMP": False,
"pushButton_EM1": False,
"pushButton_EM10": False,
"pushButton_EM100": False,
"pushButton_EP1": False,
"pushButton_EP10": False,
"pushButton_EP100": False,
"pushButton_SaveInfo": False,
"pushButton_Exit": True}
}
class SettingWindow(QMainWindow):
def __init__(self):
@ -146,22 +183,26 @@ class Data:
self.raw_ABD = None
self.raw_XX = None
self.processed_THO = None
self.processed_ABD = None
self.processed_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
PSG = pyedflib.EdfReader(self.PSGDataPath.__str__())
if self.Config["PSGConfig"]["THOChannel"]["auto"]:
self.raw_THO = PSG.pick_channels(["THO"]).get_data()[0]
self.raw_THO = PSG.readSignal(PSG.getSignalLabels().index('Effort THO'))
else:
self.raw_THO = PSG.pick_channels([self.Config["PSGConfig"]["THOChannel"]["Channel"]]).get_data()[0]
self.raw_THO = PSG.readSignal(self.Config["PSGConfig"]["THOChannel"]["Channel"])
if self.Config["PSGConfig"]["ABDChannel"]["auto"]:
self.raw_ABD = PSG.pick_channels(["ABD"]).get_data()[0]
self.raw_ABD = PSG.readSignal(PSG.getSignalLabels().index('Effort ABD'))
else:
self.raw_ABD = PSG.pick_channels([self.Config["PSGConfig"]["ABDChannel"]["Channel"]]).get_data()[0]
self.raw_ABD = PSG.readSignal(self.Config["PSGConfig"]["ABDChannel"]["Channel"])
PSG.close()
else:
return False, "PSG文件格式错误"
@ -173,8 +214,10 @@ class Data:
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
# print(self.raw_THO.shape, self.raw_XX.shape)
# print(self.Config["PSGConfig"]["Frequency"], self.Config["XXConfig"]["Frequency"])
self.PSG_minutes = round(self.raw_THO.shape[0] / self.Config["PSGConfig"]["Frequency"] / 60)
self.XX_minutes = round(self.raw_XX.shape[0] / self.Config["XXConfig"]["Frequency"] / 60)
return True, "读取成功"
@ -186,35 +229,157 @@ class Data:
return signal.sosfilt(sos, data)
# 滤波
self.raw_THO = butter_bandpass_filter(self.raw_THO, self.Config["RespFilterConfig"]["LowCut"],
self.processed_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.processed_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.processed_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"]))
return
def Standardize_0(self):
# 重采样
self.processed_THO = signal.resample(self.raw_THO, int(self.PSG_minutes * 60 * self.Config["ApplyFrequency"]))
self.processed_ABD = signal.resample(self.raw_ABD, int(self.PSG_minutes * 60 * self.Config["ApplyFrequency"]))
self.processed_XX = signal.resample(self.raw_XX, int(self.XX_minutes * 60 * self.Config["ApplyFrequency"]))
return True, "原始信号仅重采样"
def Standardize_1(self):
self.__Filter__()
return True, "呼吸提取完成 "
def Standardize_2(self):
# 如果XX采样率大于PSG采样率那么XX重采样到PSG采样率
if self.Config["XXConfig"]["Frequency"] > self.Config["PSGConfig"]["Frequency"]:
# 用[::]完成
self.processed_XX = self.processed_XX[
::int(self.Config["XXConfig"]["Frequency"] / self.Config["PSGConfig"]["Frequency"])]
# 如果XX采样率小于PSG采样率那么XX重采样到PSG采样率
elif self.Config["XXConfig"]["Frequency"] < self.Config["PSGConfig"]["Frequency"] < 100:
# 用repeat完成
self.processed_XX = np.repeat(self.processed_XX,
int(self.Config["PSGConfig"]["Frequency"] / self.Config["XXConfig"][
"Frequency"]),
axis=0)
# 修改Config
self.Config.update({"temp_frequency": self.Config["PSGConfig"]["Frequency"]})
return True, "预重采样完成"
def Standardize_3(self):
temp_frequency = self.Config["temp_frequency"]
# 判断是否去基线
if self.Config["PSGConfig"]["PSGDelBase"]:
# 减去四秒钟平均滤波
self.processed_THO = self.processed_THO - np.convolve(self.processed_THO,
np.ones(int(4 * temp_frequency)) / int(
4 * temp_frequency),
mode='same')
self.processed_ABD = self.processed_ABD - np.convolve(self.processed_ABD,
np.ones(int(4 * temp_frequency)) / int(
4 * temp_frequency),
mode='same')
if self.Config["XXConfig"]["XXDelBase"]:
self.processed_XX = self.processed_XX - np.convolve(self.processed_XX,
np.ones(int(4 * temp_frequency)) / int(
4 * temp_frequency),
mode='same')
return True, "去基线完成"
def Standardize_4(self):
# 判断是否标准化
if self.Config["PSGConfig"]["PSGZScore"]:
self.processed_THO = (self.processed_THO - np.mean(self.processed_THO)) / np.std(self.processed_THO)
self.processed_ABD = (self.processed_ABD - np.mean(self.processed_ABD)) / np.std(self.processed_ABD)
if self.Config["XXConfig"]["XXZScore"]:
self.processed_XX = (self.processed_XX - np.mean(self.processed_XX)) / np.std(self.processed_XX)
return True, "标准化完成"
def Standardize_5(self):
# 重采样
self.processed_THO = signal.resample(self.processed_THO,
int(self.PSG_minutes * 60 * self.Config["ApplyFrequency"]))
self.processed_ABD = signal.resample(self.processed_ABD,
int(self.PSG_minutes * 60 * self.Config["ApplyFrequency"]))
self.processed_XX = signal.resample(self.processed_XX,
int(self.XX_minutes * 60 * self.Config["ApplyFrequency"]))
return True, "最终重采样完成"
def DrawPicRawOverview(self):
fig = Figure(figsize=(8, 7), dpi=100)
canvas = FigureCanvas(fig)
max_x = max(self.processed_THO.shape[0], self.processed_ABD.shape[0], self.processed_XX.shape[0])
ax1 = fig.add_subplot(311)
ax1.plot(self.processed_THO, color='blue')
ax1.set_xlim(0, max_x)
ax1.set_title("THO")
ax2 = fig.add_subplot(312)
ax2.plot(self.processed_XX, color='blue')
ax2.set_xlim(0, max_x)
ax2.set_title("xinxiao")
ax3 = fig.add_subplot(313)
ax3.plot(self.processed_ABD, color='blue')
ax3.set_xlim(0, max_x)
ax3.set_title("ABD")
width, height = fig.figbbox.width, fig.figbbox.height
fig.canvas.draw()
# 返回图片以便存到QPixIamge
return canvas.buffer_rgba(), width, height
def DrawPicOverviewWithCutOff(self):
fig = Figure(figsize=(8, 7), dpi=100)
canvas = FigureCanvas(fig)
max_x = max(self.processed_THO.shape[0] + self.Config["PSGConfig"]["PreA"],
self.processed_XX.shape[0] + self.Config["XXConfig"]["PreA"])
min_x = min(self.Config["PSGConfig"]["PreA"], self.Config["XXConfig"]["PreA"], 0)
ax1 = fig.add_subplot(311)
ax1.plot(
np.linspace(self.Config["PSGConfig"]["PreA"], len(self.processed_THO) + self.Config["PSGConfig"]["PreA"],
len(self.processed_THO)), self.processed_THO, color='blue')
# 绘制x = PreCut的线 和 x = PostCut的虚线
ax1.axvline(x=self.Config["PSGConfig"]["PreCut"] + self.Config["PSGConfig"]["PreA"], color='red',
linestyle='--')
ax1.axvline(x=len(self.processed_THO) - self.Config["PSGConfig"]["PostCut"] + self.Config["PSGConfig"]["PreA"],
color='red', linestyle='--')
ax1.set_xlim(min_x, max_x)
ax1.set_title("THO")
ax2 = fig.add_subplot(312)
ax2.plot(np.linspace(self.Config["XXConfig"]["PreA"], len(self.processed_XX) + self.Config["XXConfig"]["PreA"],
len(self.processed_XX)), self.processed_XX, color='blue')
ax2.axvline(x=self.Config["XXConfig"]["PreCut"] + self.Config["XXConfig"]["PreA"], color='red', linestyle='--')
ax2.axvline(x=len(self.processed_XX) - self.Config["XXConfig"]["PostCut"] + self.Config["XXConfig"]["PreA"],
color='red', linestyle='--')
ax2.set_xlim(min_x, max_x)
ax2.set_title("xinxiao")
ax3 = fig.add_subplot(313)
ax3.plot(
np.linspace(self.Config["PSGConfig"]["PreA"], len(self.processed_ABD) + self.Config["PSGConfig"]["PreA"],
len(self.processed_ABD)), self.processed_ABD, color='blue')
ax3.axvline(x=self.Config["PSGConfig"]["PreCut"] + self.Config["PSGConfig"]["PreA"], color='red',
linestyle='--')
ax3.axvline(x=len(self.processed_THO) - self.Config["PSGConfig"]["PostCut"] + self.Config["PSGConfig"]["PreA"],
color='red', linestyle='--')
ax3.set_xlim(min_x, max_x)
ax3.set_title("ABD")
width, height = fig.figbbox.width, fig.figbbox.height
fig.canvas.draw()
# 返回图片以便存到QPixIamge
return canvas.buffer_rgba(), width, height
class MainWindow(QMainWindow):
@ -228,12 +393,74 @@ class MainWindow(QMainWindow):
# checkbox custom 和SpinBox 互斥
self.ui.checkBox_custom.stateChanged.connect(self.__customChannel__)
self.__disableAllButton__()
# 绑定事件
# 刷新键分别获取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__)
self.ui.pushButton_CutOff.clicked.connect(self.__cutOff__)
self.ui.pushButton_GetPos.clicked.connect(self.__getPosition__)
# self.ui.pushButton_Align.clicked.connect(self.__align__)
# self.ui.pushButton_JUMP.clicked.connect(self.__jump__)
# self.ui.pushButton_EM1.clicked.connect(self.__EM1__)
# self.ui.pushButton_EM10.clicked.connect(self.__EM10__)
# self.ui.pushButton_EM100.clicked.connect(self.__EM100__)
# self.ui.pushButton_EP1.clicked.connect(self.__EP1__)
# self.ui.pushButton_EP10.clicked.connect(self.__EP10__)
# self.ui.pushButton_EP100.clicked.connect(self.__EP100__)
# self.ui.pushButton_SaveInfo.clicked.connect(self.__saveInfo__)
self.ui.pushButton_Exit.clicked.connect(self.__exit__)
def __resset__(self):
ButtonState["Current"].update(ButtonState["Default"].copy())
ButtonState["Current"]["pushButton_Standardize"] = True
self.ui.spinBox_PSGPreA.setValue(0)
self.ui.spinBox_PSGPreCut.setValue(0)
self.ui.spinBox_PSGPostCut.setValue(0)
self.ui.spinBox_XXPreA.setValue(0)
self.ui.spinBox_XXPreCut.setValue(0)
self.ui.spinBox_XXPostCut.setValue(0)
self.ui.checkBox_NABD.setChecked(False)
self.ui.checkBox_NTHO.setChecked(False)
self.ui.checkBox_PABD.setChecked(False)
self.ui.checkBox_PTHO.setChecked(False)
self.ui.checkBox_custom.setChecked(False)
self.ui.spinBox_SelectEpoch.setValue(0)
self.ui.spinBox_custom.setValue(0)
def __cutOff__(self):
Conf2 = self.data.Config.copy()
Conf2["PSGConfig"].update({"PreA": self.ui.spinBox_PSGPreA.value(),
"PreCut": self.ui.spinBox_PSGPreCut.value(),
"PostCut": self.ui.spinBox_PSGPostCut.value()})
Conf2["XXConfig"].update({"PreA": self.ui.spinBox_XXPreA.value(),
"PreCut": self.ui.spinBox_XXPreCut.value(),
"PostCut": self.ui.spinBox_XXPostCut.value()})
self.data.Config = Conf2
self.__plot__()
# matplotlib 绘制图像
def __plot__(self):
# 判读是哪个按钮点击调用的本程序
if self.sender() == self.ui.pushButton_Standardize:
buffer, width, height = self.data.DrawPicRawOverview()
elif self.sender() == self.ui.pushButton_CutOff:
buffer, width, height = self.data.DrawPicOverviewWithCutOff()
else:
return
# 显示到labelPic上
img = QImage(buffer, width, height, QImage.Format_RGBA8888)
self.ui.label_Pic.setPixmap(QPixmap(img))
# noinspection PyUnresolvedReferences
def __exit__(self):
# 选择是否确认退出
reply = QMessageBox.question(self, '确认', '确认退出吗?', QMessageBox.Yes | QMessageBox.No, QMessageBox.No)
if reply == QMessageBox.Yes:
self.close()
def __customChannel__(self, state):
if state == 2:
@ -256,6 +483,8 @@ class MainWindow(QMainWindow):
# 获取两文件夹下所有的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")]
sorted(PSGFiles)
sorted(XXFiles)
# 获取两文件夹下同时存在的编号
print(PSGFiles, XXFiles)
Files = list(set(PSGFiles).intersection(set(XXFiles)))
@ -277,7 +506,31 @@ class MainWindow(QMainWindow):
self.ui.comboBox_SelectFile.model().item(
FilesOnlyInXX.index(file) + len(Files) + len(FilesOnlyInPSG)).setEnabled(False)
def __disableAllButton__(self):
# 禁用所有按钮
all_widgets = self.centralWidget().findChildren(QWidget)
# 迭代所有部件,查找按钮并禁用它们
for widget in all_widgets:
if isinstance(widget, QPushButton):
if widget.objectName() in ButtonState["Current"].keys():
widget.setEnabled(ButtonState["Current"][widget.objectName()])
def __enableAllButton__(self):
# 启用按钮
all_widgets = self.centralWidget().findChildren(QWidget)
# 迭代所有部件,查找按钮并启用它们
for widget in all_widgets:
if isinstance(widget, QPushButton):
if widget.objectName() in ButtonState["Current"].keys():
widget.setEnabled(ButtonState["Current"][widget.objectName()])
def __openFile__(self):
self.ui.label_Info.setText("正在打开文件...")
self.__disableAllButton__()
# 长时间操作,刷新界面防止卡顿
QApplication.processEvents()
# 获取checkbox状态
self.data = Data(Path(self.setting.ui.lineEdit_PSGFilePath.text()),
Path(self.setting.ui.lineEdit_XXFilePath.text()),
@ -287,13 +540,21 @@ class MainWindow(QMainWindow):
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.progressBar.setValue(100)
self.ui.label_Info.setText(info)
self.__resset__()
self.__enableAllButton__()
def __standardize__(self):
self.ui.progressBar.setValue(0)
self.ui.label_Info.setText("正在标准化...")
self.__disableAllButton__()
QApplication.processEvents()
Conf2 = self.data.Config.copy()
Conf2["RawSignal"] = self.ui.checkBox_RawSignal.isChecked()
Conf2["PSGConfig"].update({
@ -307,7 +568,48 @@ class MainWindow(QMainWindow):
"Frequency": self.ui.spinBox_XXFreq.value(),
})
self.data.Config = Conf2
self.data.Standardize()
if self.data.Config["RawSignal"]:
opened, info = self.data.Standardize_0()
if not opened:
QMessageBox.warning(self, "警告", info)
self.ui.label_Info.setText(info)
else:
self.ui.progressBar.setValue(100)
self.ui.label_Info.setText(info)
else:
self.ui.label_Info.setText('正在进行呼吸提取...')
QApplication.processEvents()
opened, info = self.data.Standardize_1()
self.ui.label_Info.setText(info)
self.ui.progressBar.setValue(10)
QApplication.processEvents()
opened, info = self.data.Standardize_2()
self.ui.progressBar.setValue(30)
self.ui.label_Info.setText(info)
QApplication.processEvents()
opened, info = self.data.Standardize_3()
self.ui.label_Info.setText(info)
self.ui.progressBar.setValue(50)
QApplication.processEvents()
opened, info = self.data.Standardize_4()
self.ui.label_Info.setText(info)
self.ui.progressBar.setValue(70)
QApplication.processEvents()
opened, info = self.data.Standardize_5()
self.ui.label_Info.setText(info)
self.ui.progressBar.setValue(90)
QApplication.processEvents()
self.__plot__()
self.ui.progressBar.setValue(100)
ButtonState["Current"]["pushButton_CutOff"] = True
ButtonState["Current"]["pushButton_GetPos"] = True
self.__enableAllButton__()
if __name__ == "__main__":

View File

@ -1,4 +1,4 @@
ApplyFrequency: 100
ApplyFrequency: 5
PSGConfig:
ABDChannel:
Channel: 4
@ -9,9 +9,9 @@ PSGConfig:
Channel: 3
auto: true
RespFilterConfig:
HighCut: 0.71
HighCut: 0.7
LowCut: 0.01
Order: 4
XXConfig:
Frequency: 100
Frequency: 1000
Path: D:/code/RespCoarseAlignment/Data/XX

View File

@ -33,7 +33,7 @@ class Ui_mainWindow(object):
sizePolicy.setHeightForWidth(mainWindow.sizePolicy().hasHeightForWidth())
mainWindow.setSizePolicy(sizePolicy)
mainWindow.setMinimumSize(QSize(1200, 800))
mainWindow.setMaximumSize(QSize(1920, 1080))
mainWindow.setMaximumSize(QSize(1200, 800))
mainWindow.setSizeIncrement(QSize(4, 3))
self.actionDefault_Configuration = QAction(mainWindow)
self.actionDefault_Configuration.setObjectName(u"actionDefault_Configuration")
@ -41,7 +41,7 @@ class Ui_mainWindow(object):
self.centralwidget.setObjectName(u"centralwidget")
self.horizontalLayoutWidget = QWidget(self.centralwidget)
self.horizontalLayoutWidget.setObjectName(u"horizontalLayoutWidget")
self.horizontalLayoutWidget.setGeometry(QRect(10, 10, 1181, 741))
self.horizontalLayoutWidget.setGeometry(QRect(10, 10, 1181, 751))
self.horizontalLayout = QHBoxLayout(self.horizontalLayoutWidget)
self.horizontalLayout.setObjectName(u"horizontalLayout")
self.horizontalLayout.setContentsMargins(0, 0, 0, 0)
@ -51,7 +51,7 @@ class Ui_mainWindow(object):
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.verticalLayoutWidget_7.setGeometry(QRect(10, 20, 281, 51))
self.verticalLayout_8 = QVBoxLayout(self.verticalLayoutWidget_7)
self.verticalLayout_8.setObjectName(u"verticalLayout_8")
self.verticalLayout_8.setContentsMargins(0, 0, 0, 0)
@ -277,128 +277,178 @@ class Ui_mainWindow(object):
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.verticalLayoutWidget_3.setGeometry(QRect(10, 20, 281, 112))
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.label_25 = QLabel(self.verticalLayoutWidget_3)
self.label_25.setObjectName(u"label_25")
sizePolicy.setHeightForWidth(self.label_25.sizePolicy().hasHeightForWidth())
self.label_25.setSizePolicy(sizePolicy)
self.label_25.setMaximumSize(QSize(65, 16777215))
self.horizontalLayout_6.addWidget(self.label_24)
self.horizontalLayout_6.addWidget(self.label_25)
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.spinBox_PSGPreA = QSpinBox(self.verticalLayoutWidget_3)
self.spinBox_PSGPreA.setObjectName(u"spinBox_PSGPreA")
sizePolicy1.setHeightForWidth(self.spinBox_PSGPreA.sizePolicy().hasHeightForWidth())
self.spinBox_PSGPreA.setSizePolicy(sizePolicy1)
self.spinBox_PSGPreA.setMinimumSize(QSize(60, 0))
self.spinBox_PSGPreA.setMaximumSize(QSize(100, 16777215))
self.spinBox_PSGPreA.setToolTipDuration(2)
self.spinBox_PSGPreA.setAlignment(Qt.AlignRight|Qt.AlignTrailing|Qt.AlignVCenter)
self.spinBox_PSGPreA.setButtonSymbols(QAbstractSpinBox.NoButtons)
self.spinBox_PSGPreA.setMinimum(0)
self.spinBox_PSGPreA.setMaximum(300000)
self.spinBox_PSGPreA.setValue(0)
self.horizontalLayout_6.addWidget(self.spinBox_PSGPre)
self.horizontalLayout_6.addWidget(self.spinBox_PSGPreA)
self.horizontalSpacer = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum)
self.horizontalSpacer_10 = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum)
self.horizontalLayout_6.addItem(self.horizontalSpacer)
self.horizontalLayout_6.addItem(self.horizontalSpacer_10)
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.horizontalLayout_6.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.spinBox_XXPreA = QSpinBox(self.verticalLayoutWidget_3)
self.spinBox_XXPreA.setObjectName(u"spinBox_XXPreA")
sizePolicy1.setHeightForWidth(self.spinBox_XXPreA.sizePolicy().hasHeightForWidth())
self.spinBox_XXPreA.setSizePolicy(sizePolicy1)
self.spinBox_XXPreA.setMinimumSize(QSize(60, 0))
self.spinBox_XXPreA.setMaximumSize(QSize(100, 16777215))
self.spinBox_XXPreA.setAlignment(Qt.AlignRight|Qt.AlignTrailing|Qt.AlignVCenter)
self.spinBox_XXPreA.setButtonSymbols(QAbstractSpinBox.NoButtons)
self.spinBox_XXPreA.setMinimum(0)
self.spinBox_XXPreA.setMaximum(300000)
self.spinBox_XXPreA.setValue(0)
self.horizontalLayout_7.addWidget(self.spinBox_XXPre)
self.horizontalLayout_6.addWidget(self.spinBox_XXPreA)
self.verticalLayout_3.addLayout(self.horizontalLayout_6)
self.horizontalLayout_2 = QHBoxLayout()
self.horizontalLayout_2.setObjectName(u"horizontalLayout_2")
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_2.addWidget(self.label_24)
self.spinBox_PSGPreCut = QSpinBox(self.verticalLayoutWidget_3)
self.spinBox_PSGPreCut.setObjectName(u"spinBox_PSGPreCut")
sizePolicy4.setHeightForWidth(self.spinBox_PSGPreCut.sizePolicy().hasHeightForWidth())
self.spinBox_PSGPreCut.setSizePolicy(sizePolicy4)
self.spinBox_PSGPreCut.setMinimumSize(QSize(60, 0))
self.spinBox_PSGPreCut.setMaximumSize(QSize(100, 16777215))
self.spinBox_PSGPreCut.setToolTipDuration(2)
self.spinBox_PSGPreCut.setAlignment(Qt.AlignRight|Qt.AlignTrailing|Qt.AlignVCenter)
self.spinBox_PSGPreCut.setButtonSymbols(QAbstractSpinBox.NoButtons)
self.spinBox_PSGPreCut.setMinimum(0)
self.spinBox_PSGPreCut.setMaximum(300000)
self.spinBox_PSGPreCut.setValue(0)
self.horizontalLayout_2.addWidget(self.spinBox_PSGPreCut)
self.horizontalSpacer_2 = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum)
self.horizontalLayout_7.addItem(self.horizontalSpacer_2)
self.horizontalLayout_2.addItem(self.horizontalSpacer_2)
self.label_26 = QLabel(self.verticalLayoutWidget_3)
self.label_26.setObjectName(u"label_26")
sizePolicy.setHeightForWidth(self.label_26.sizePolicy().hasHeightForWidth())
self.label_26.setSizePolicy(sizePolicy)
self.label_26.setMaximumSize(QSize(65, 16777215))
self.horizontalLayout_2.addWidget(self.label_26)
self.spinBox_XXPreCut = QSpinBox(self.verticalLayoutWidget_3)
self.spinBox_XXPreCut.setObjectName(u"spinBox_XXPreCut")
sizePolicy1.setHeightForWidth(self.spinBox_XXPreCut.sizePolicy().hasHeightForWidth())
self.spinBox_XXPreCut.setSizePolicy(sizePolicy1)
self.spinBox_XXPreCut.setMinimumSize(QSize(60, 0))
self.spinBox_XXPreCut.setMaximumSize(QSize(100, 16777215))
self.spinBox_XXPreCut.setToolTipDuration(2)
self.spinBox_XXPreCut.setAlignment(Qt.AlignRight|Qt.AlignTrailing|Qt.AlignVCenter)
self.spinBox_XXPreCut.setButtonSymbols(QAbstractSpinBox.NoButtons)
self.spinBox_XXPreCut.setMinimum(0)
self.spinBox_XXPreCut.setMaximum(300000)
self.spinBox_XXPreCut.setValue(0)
self.horizontalLayout_2.addWidget(self.spinBox_XXPreCut)
self.verticalLayout_3.addLayout(self.horizontalLayout_2)
self.horizontalLayout_7 = QHBoxLayout()
self.horizontalLayout_7.setObjectName(u"horizontalLayout_7")
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(65, 16777215))
self.horizontalLayout_7.addWidget(self.label_22)
self.spinBox_PSGPostCut = QSpinBox(self.verticalLayoutWidget_3)
self.spinBox_PSGPostCut.setObjectName(u"spinBox_PSGPostCut")
sizePolicy.setHeightForWidth(self.spinBox_PSGPostCut.sizePolicy().hasHeightForWidth())
self.spinBox_PSGPostCut.setSizePolicy(sizePolicy)
self.spinBox_PSGPostCut.setMinimumSize(QSize(60, 0))
self.spinBox_PSGPostCut.setMaximumSize(QSize(100, 16777215))
self.spinBox_PSGPostCut.setToolTipDuration(2)
self.spinBox_PSGPostCut.setAlignment(Qt.AlignRight|Qt.AlignTrailing|Qt.AlignVCenter)
self.spinBox_PSGPostCut.setButtonSymbols(QAbstractSpinBox.NoButtons)
self.spinBox_PSGPostCut.setMinimum(0)
self.spinBox_PSGPostCut.setMaximum(300000)
self.spinBox_PSGPostCut.setValue(0)
self.horizontalLayout_7.addWidget(self.spinBox_PSGPostCut)
self.horizontalSpacer = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum)
self.horizontalLayout_7.addItem(self.horizontalSpacer)
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.label_23.setMaximumSize(QSize(65, 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.spinBox_XXPostCut = QSpinBox(self.verticalLayoutWidget_3)
self.spinBox_XXPostCut.setObjectName(u"spinBox_XXPostCut")
sizePolicy.setHeightForWidth(self.spinBox_XXPostCut.sizePolicy().hasHeightForWidth())
self.spinBox_XXPostCut.setSizePolicy(sizePolicy)
self.spinBox_XXPostCut.setMinimumSize(QSize(60, 0))
self.spinBox_XXPostCut.setMaximumSize(QSize(100, 16777215))
self.spinBox_XXPostCut.setAlignment(Qt.AlignRight|Qt.AlignTrailing|Qt.AlignVCenter)
self.spinBox_XXPostCut.setButtonSymbols(QAbstractSpinBox.NoButtons)
self.spinBox_XXPostCut.setMinimum(0)
self.spinBox_XXPostCut.setMaximum(300000)
self.spinBox_XXPostCut.setValue(0)
self.horizontalLayout_7.addWidget(self.spinBox_XXAft)
self.horizontalLayout_7.addWidget(self.spinBox_XXPostCut)
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.horizontalSpacer_8 = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum)
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.horizontalLayout_8.addItem(self.horizontalSpacer_8)
self.pushButton_CutOff = QPushButton(self.verticalLayoutWidget_3)
self.pushButton_CutOff.setObjectName(u"pushButton_CutOff")
@ -409,6 +459,21 @@ class Ui_mainWindow(object):
self.horizontalLayout_8.addWidget(self.pushButton_CutOff)
self.horizontalSpacer_3 = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum)
self.horizontalLayout_8.addItem(self.horizontalSpacer_3)
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_9 = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum)
self.horizontalLayout_8.addItem(self.horizontalSpacer_9)
self.verticalLayout_3.addLayout(self.horizontalLayout_8)
@ -419,7 +484,7 @@ class Ui_mainWindow(object):
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.verticalLayoutWidget_4.setGeometry(QRect(10, 20, 281, 91))
self.verticalLayout_4 = QVBoxLayout(self.verticalLayoutWidget_4)
self.verticalLayout_4.setObjectName(u"verticalLayout_4")
self.verticalLayout_4.setContentsMargins(0, 0, 0, 0)
@ -510,7 +575,7 @@ class Ui_mainWindow(object):
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.verticalLayoutWidget_5.setGeometry(QRect(10, 20, 281, 92))
self.verticalLayout_5 = QVBoxLayout(self.verticalLayoutWidget_5)
self.verticalLayout_5.setObjectName(u"verticalLayout_5")
self.verticalLayout_5.setContentsMargins(0, 0, 0, 0)
@ -612,23 +677,20 @@ class Ui_mainWindow(object):
self.label_Info = QLabel(self.horizontalLayoutWidget)
self.label_Info.setObjectName(u"label_Info")
self.label_Info.setMaximumSize(QSize(16777215, 20))
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(2, 5)
self.verticalLayout.setStretch(3, 4)
self.verticalLayout.setStretch(4, 4)
self.verticalLayout.setStretch(5, 2)
self.verticalLayout.setStretch(6, 3)
self.verticalLayout.setStretch(6, 2)
self.horizontalLayout.addLayout(self.verticalLayout)
@ -641,26 +703,14 @@ class Ui_mainWindow(object):
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.label_Pic.setMinimumSize(QSize(860, 700))
self.label_Pic.setMaximumSize(QSize(860, 700))
self.verticalLayout_9.addWidget(self.label_Pic)
self.verticalLayout_9.setStretch(0, 2)
self.verticalLayout_9.setStretch(2, 6)
self.verticalLayout_9.setStretch(0, 6)
self.horizontalLayout.addLayout(self.verticalLayout_9)
@ -709,12 +759,42 @@ class Ui_mainWindow(object):
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))
#if QT_CONFIG(tooltip)
self.label_25.setToolTip("")
#endif // QT_CONFIG(tooltip)
self.label_25.setText(QCoreApplication.translate("mainWindow", u"PSG_\u8865\u96f6:", None))
#if QT_CONFIG(tooltip)
self.spinBox_PSGPreA.setToolTip(QCoreApplication.translate("mainWindow", u"\u8d1f\u6570\u5219\u8865\u96f6", None))
#endif // QT_CONFIG(tooltip)
self.spinBox_PSGPreA.setPrefix("")
#if QT_CONFIG(tooltip)
self.label_21.setToolTip("")
#endif // QT_CONFIG(tooltip)
self.label_21.setText(QCoreApplication.translate("mainWindow", u"\u5fc3\u6653_\u8865\u96f6:", None))
#if QT_CONFIG(tooltip)
self.label_24.setToolTip("")
#endif // QT_CONFIG(tooltip)
self.label_24.setText(QCoreApplication.translate("mainWindow", u"PSG_Pre :", None))
#if QT_CONFIG(tooltip)
self.spinBox_PSGPreCut.setToolTip(QCoreApplication.translate("mainWindow", u"\u8d1f\u6570\u5219\u8865\u96f6", None))
#endif // QT_CONFIG(tooltip)
self.spinBox_PSGPreCut.setPrefix("")
#if QT_CONFIG(tooltip)
self.label_26.setToolTip("")
#endif // QT_CONFIG(tooltip)
self.label_26.setText(QCoreApplication.translate("mainWindow", u"\u5fc3\u6653_Pre:", None))
#if QT_CONFIG(tooltip)
self.spinBox_XXPreCut.setToolTip(QCoreApplication.translate("mainWindow", u"\u8d1f\u6570\u5219\u8865\u96f6", None))
#endif // QT_CONFIG(tooltip)
self.spinBox_XXPreCut.setPrefix("")
self.label_22.setText(QCoreApplication.translate("mainWindow", u"PSG_Post:", None))
#if QT_CONFIG(tooltip)
self.spinBox_PSGPostCut.setToolTip(QCoreApplication.translate("mainWindow", u"\u8d1f\u6570\u5219\u8865\u96f6", None))
#endif // QT_CONFIG(tooltip)
self.spinBox_PSGPostCut.setPrefix("")
self.label_23.setText(QCoreApplication.translate("mainWindow", u"\u5fc3\u6653_Post:", None))
self.pushButton_CutOff.setText(QCoreApplication.translate("mainWindow", u"\u5e94\u7528", None))
self.pushButton_GetPos.setText(QCoreApplication.translate("mainWindow", u"\u83b7\u53d6\u5bf9\u9f50\u4f4d\u7f6e", 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))
@ -737,7 +817,6 @@ class Ui_mainWindow(object):
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

View File

@ -24,8 +24,8 @@
</property>
<property name="maximumSize">
<size>
<width>1920</width>
<height>1080</height>
<width>1200</width>
<height>800</height>
</size>
</property>
<property name="sizeIncrement">
@ -44,12 +44,12 @@
<x>10</x>
<y>10</y>
<width>1181</width>
<height>741</height>
<height>751</height>
</rect>
</property>
<layout class="QHBoxLayout" name="horizontalLayout" stretch="2,0,6">
<item>
<layout class="QVBoxLayout" name="verticalLayout" stretch="3,4,4,4,4,2,3">
<layout class="QVBoxLayout" name="verticalLayout" stretch="3,4,5,4,4,2,2">
<item>
<widget class="QGroupBox" name="groupBox">
<property name="title">
@ -60,8 +60,8 @@
<rect>
<x>10</x>
<y>20</y>
<width>274</width>
<height>71</height>
<width>281</width>
<height>51</height>
</rect>
</property>
<layout class="QVBoxLayout" name="verticalLayout_8">
@ -492,15 +492,15 @@
<rect>
<x>10</x>
<y>20</y>
<width>271</width>
<height>91</height>
<width>281</width>
<height>112</height>
</rect>
</property>
<layout class="QVBoxLayout" name="verticalLayout_3">
<item>
<layout class="QHBoxLayout" name="horizontalLayout_6">
<item>
<widget class="QLabel" name="label_24">
<widget class="QLabel" name="label_25">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
@ -513,13 +513,16 @@
<height>16777215</height>
</size>
</property>
<property name="toolTip">
<string/>
</property>
<property name="text">
<string>PSG_PRE:</string>
<string>PSG_补零:</string>
</property>
</widget>
</item>
<item>
<widget class="QSpinBox" name="spinBox_PSGPre">
<widget class="QSpinBox" name="spinBox_PSGPreA">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
@ -538,17 +541,26 @@
<height>16777215</height>
</size>
</property>
<property name="toolTip">
<string>负数则补零</string>
</property>
<property name="toolTipDuration">
<number>2</number>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
<property name="buttonSymbols">
<enum>QAbstractSpinBox::NoButtons</enum>
</property>
<property name="prefix">
<string/>
</property>
<property name="minimum">
<number>0</number>
</property>
<property name="maximum">
<number>1000</number>
<number>300000</number>
</property>
<property name="value">
<number>0</number>
@ -556,7 +568,7 @@
</widget>
</item>
<item>
<spacer name="horizontalSpacer">
<spacer name="horizontalSpacer_10">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
@ -568,66 +580,6 @@
</property>
</spacer>
</item>
<item>
<widget class="QLabel" name="label_22">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="maximumSize">
<size>
<width>72</width>
<height>16777215</height>
</size>
</property>
<property name="text">
<string>PSG_AFT</string>
</property>
</widget>
</item>
<item>
<widget class="QSpinBox" name="spinBox_PSGAft">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>60</width>
<height>0</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>100</width>
<height>16777215</height>
</size>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
<property name="buttonSymbols">
<enum>QAbstractSpinBox::NoButtons</enum>
</property>
<property name="minimum">
<number>0</number>
</property>
<property name="maximum">
<number>1000</number>
</property>
<property name="value">
<number>0</number>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_7">
<item>
<widget class="QLabel" name="label_21">
<property name="sizePolicy">
@ -642,13 +594,16 @@
<height>16777215</height>
</size>
</property>
<property name="toolTip">
<string/>
</property>
<property name="text">
<string>心晓_PRE:</string>
<string>心晓_补零:</string>
</property>
</widget>
</item>
<item>
<widget class="QSpinBox" name="spinBox_XXPre">
<widget class="QSpinBox" name="spinBox_XXPreA">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
@ -677,8 +632,80 @@
<number>0</number>
</property>
<property name="maximum">
<number>300000</number>
</property>
<property name="value">
<number>0</number>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_2">
<item>
<widget class="QLabel" name="label_24">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="maximumSize">
<size>
<width>65</width>
<height>16777215</height>
</size>
</property>
<property name="toolTip">
<string/>
</property>
<property name="text">
<string>PSG_Pre :</string>
</property>
</widget>
</item>
<item>
<widget class="QSpinBox" name="spinBox_PSGPreCut">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>60</width>
<height>0</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>100</width>
<height>16777215</height>
</size>
</property>
<property name="toolTip">
<string>负数则补零</string>
</property>
<property name="toolTipDuration">
<number>2</number>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
<property name="buttonSymbols">
<enum>QAbstractSpinBox::NoButtons</enum>
</property>
<property name="prefix">
<string/>
</property>
<property name="minimum">
<number>0</number>
</property>
<property name="maximum">
<number>300000</number>
</property>
<property name="value">
<number>0</number>
</property>
@ -697,6 +724,156 @@
</property>
</spacer>
</item>
<item>
<widget class="QLabel" name="label_26">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="maximumSize">
<size>
<width>65</width>
<height>16777215</height>
</size>
</property>
<property name="toolTip">
<string/>
</property>
<property name="text">
<string>心晓_Pre:</string>
</property>
</widget>
</item>
<item>
<widget class="QSpinBox" name="spinBox_XXPreCut">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>60</width>
<height>0</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>100</width>
<height>16777215</height>
</size>
</property>
<property name="toolTip">
<string>负数则补零</string>
</property>
<property name="toolTipDuration">
<number>2</number>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
<property name="buttonSymbols">
<enum>QAbstractSpinBox::NoButtons</enum>
</property>
<property name="prefix">
<string/>
</property>
<property name="minimum">
<number>0</number>
</property>
<property name="maximum">
<number>300000</number>
</property>
<property name="value">
<number>0</number>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_7">
<item>
<widget class="QLabel" name="label_22">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="maximumSize">
<size>
<width>65</width>
<height>16777215</height>
</size>
</property>
<property name="text">
<string>PSG_Post:</string>
</property>
</widget>
</item>
<item>
<widget class="QSpinBox" name="spinBox_PSGPostCut">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>60</width>
<height>0</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>100</width>
<height>16777215</height>
</size>
</property>
<property name="toolTip">
<string>负数则补零</string>
</property>
<property name="toolTipDuration">
<number>2</number>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
<property name="buttonSymbols">
<enum>QAbstractSpinBox::NoButtons</enum>
</property>
<property name="prefix">
<string/>
</property>
<property name="minimum">
<number>0</number>
</property>
<property name="maximum">
<number>300000</number>
</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="QLabel" name="label_23">
<property name="sizePolicy">
@ -707,19 +884,19 @@
</property>
<property name="maximumSize">
<size>
<width>72</width>
<width>65</width>
<height>16777215</height>
</size>
</property>
<property name="text">
<string>心晓_AFT</string>
<string>心晓_Post:</string>
</property>
</widget>
</item>
<item>
<widget class="QSpinBox" name="spinBox_XXAft">
<widget class="QSpinBox" name="spinBox_XXPostCut">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
@ -732,7 +909,7 @@
</property>
<property name="maximumSize">
<size>
<width>60</width>
<width>100</width>
<height>16777215</height>
</size>
</property>
@ -746,7 +923,7 @@
<number>0</number>
</property>
<property name="maximum">
<number>1000</number>
<number>300000</number>
</property>
<property name="value">
<number>0</number>
@ -758,20 +935,7 @@
<item>
<layout class="QHBoxLayout" name="horizontalLayout_8">
<item>
<widget class="QPushButton" name="pushButton_GetPos">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>获取对齐位置</string>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer_3">
<spacer name="horizontalSpacer_8">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
@ -808,6 +972,45 @@
</property>
</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="QPushButton" name="pushButton_GetPos">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>获取对齐位置</string>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer_9">
<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>
@ -824,7 +1027,7 @@
<rect>
<x>10</x>
<y>20</y>
<width>271</width>
<width>281</width>
<height>91</height>
</rect>
</property>
@ -973,7 +1176,7 @@
<rect>
<x>10</x>
<y>20</y>
<width>271</width>
<width>281</width>
<height>92</height>
</rect>
</property>
@ -1150,24 +1353,17 @@
</item>
<item>
<widget class="QLabel" name="label_Info">
<property name="maximumSize">
<size>
<width>16777215</width>
<height>20</height>
</size>
</property>
<property name="text">
<string>Info</string>
</property>
</widget>
</item>
<item>
<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>
</item>
</layout>
@ -1180,29 +1376,21 @@
</widget>
</item>
<item>
<layout class="QVBoxLayout" name="verticalLayout_9" stretch="2,0,6">
<item>
<widget class="QLabel" name="label_SPic">
<property name="maximumSize">
<size>
<width>16777215</width>
<height>100</height>
</size>
</property>
<property name="text">
<string>TextLabel</string>
</property>
</widget>
</item>
<item>
<widget class="Line" name="line_2">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
<layout class="QVBoxLayout" name="verticalLayout_9" stretch="6">
<item>
<widget class="QLabel" name="label_Pic">
<property name="minimumSize">
<size>
<width>860</width>
<height>700</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>860</width>
<height>700</height>
</size>
</property>
<property name="text">
<string>TextLabel</string>
</property>