完成基本功能,需要对计算相关系数进一步优化避免卡顿

This commit is contained in:
andrew 2023-09-22 20:43:58 +08:00
parent f7e1ba6d4e
commit 9fc85615d6
4 changed files with 408 additions and 81 deletions

5
.gitignore vendored
View File

@ -230,3 +230,8 @@ ipython_config.py
# Remove previous ipynb_checkpoints
# git rm -r .ipynb_checkpoints/
./Data/*
./Data/PSG/*
./Data/XX/*
!./Data/PSG
!./Data/XX

View File

@ -9,6 +9,7 @@
"""
import sys
from datetime import datetime
from pathlib import Path
import pyedflib
import numpy as np
@ -65,6 +66,7 @@ ButtonState = {
"pushButton_EP10": False,
"pushButton_EP100": False,
"pushButton_SaveInfo": False,
"pushButton_ReadInfo": False,
"pushButton_Exit": True},
"Current": {
"pushButton_Refresh": True,
@ -80,6 +82,7 @@ ButtonState = {
"pushButton_EP10": False,
"pushButton_EP100": False,
"pushButton_SaveInfo": False,
"pushButton_ReadInfo": False,
"pushButton_Exit": True}
}
@ -410,7 +413,7 @@ class Data:
# 返回图片以便存到QPixImage
return canvas.buffer_rgba(), width, height
def DrawPicOTryAlign(self):
def DrawPicTryAlign(self):
fig = Figure(figsize=(8, 7), dpi=100)
canvas = FigureCanvas(fig)
max_x = max(self.processed_THO.shape[0] + self.Config["PSGConfig"]["PreA"],
@ -444,6 +447,67 @@ class Data:
# 返回图片以便存到QPixImage
return canvas.buffer_rgba(), width, height
def DrawPicByEpoch(self, epoch):
PSG_SP = epoch * 30 * self.Config["ApplyFrequency"]
PSG_EP = (epoch + 6) * 30 * self.Config["ApplyFrequency"]
XX_SP = PSG_SP - self.Config["pos"]
XX_EP = PSG_EP - self.Config["pos"]
tho_seg = self.processed_THO[PSG_SP:PSG_EP]
xx_seg = self.processed_XX[XX_SP:XX_EP] * self.Config["XX_reverse"]
abd_seg = self.processed_ABD[PSG_SP:PSG_EP]
fig = Figure(figsize=(8, 7), dpi=100)
canvas = FigureCanvas(fig)
# 根据PSG来和绘制
ax1 = fig.add_subplot(321)
ax1.plot(np.linspace(PSG_SP, PSG_EP, len(tho_seg)), tho_seg)
tho_peaks, _ = signal.find_peaks(tho_seg, prominence=0, distance=3 * self.Config["ApplyFrequency"])
ax1.plot(np.linspace(PSG_SP, PSG_EP, len(tho_seg))[tho_peaks], tho_seg[tho_peaks], "x")
ax3 = fig.add_subplot(323)
ax3.plot(np.linspace(XX_SP, XX_EP, len(xx_seg)), xx_seg)
xx_peaks, _ = signal.find_peaks(xx_seg, prominence=0, distance=3 * self.Config["ApplyFrequency"])
ax3.plot(np.linspace(XX_SP, XX_EP, len(xx_seg))[xx_peaks], xx_seg[xx_peaks], "x")
ax2 = fig.add_subplot(325)
ax2.plot(np.linspace(PSG_SP, PSG_EP, len(abd_seg)), abd_seg)
abd_peaks, _ = signal.find_peaks(abd_seg, prominence=0, distance=3 * self.Config["ApplyFrequency"])
ax2.plot(np.linspace(PSG_SP, PSG_EP, len(abd_seg))[abd_peaks], abd_seg[abd_peaks], "x")
# 绘制间期
ax4 = fig.add_subplot(322)
ax4.plot(np.linspace(PSG_SP, PSG_EP, len(np.diff(tho_peaks).repeat(self.Config["ApplyFrequency"]))),
np.diff(tho_peaks).repeat(self.Config["ApplyFrequency"]), alpha=0.5, label="tho")
ax4.plot(np.linspace(PSG_SP, PSG_EP, len(np.diff(xx_peaks).repeat(self.Config["ApplyFrequency"]))),
np.diff(xx_peaks).repeat(self.Config["ApplyFrequency"]), label="resp")
ax4.set_title("tho_interval")
ax4.legend()
ax4.set_ylim((10, 50))
ax5 = fig.add_subplot(324)
ax5.plot(np.linspace(XX_SP, XX_EP, len(np.diff(tho_peaks).repeat(self.Config["ApplyFrequency"]))),
np.diff(tho_peaks).repeat(self.Config["ApplyFrequency"]))
ax5.plot(np.linspace(XX_SP, XX_EP, len(np.diff(xx_peaks).repeat(self.Config["ApplyFrequency"]))),
np.diff(xx_peaks).repeat(self.Config["ApplyFrequency"]), label="resp")
ax5.set_title("resp_interval")
ax5.set_ylim((10, 50))
ax6 = fig.add_subplot(326)
ax6.plot(np.linspace(PSG_SP, PSG_EP, len(np.diff(abd_peaks).repeat(self.Config["ApplyFrequency"]))),
np.diff(abd_peaks).repeat(self.Config["ApplyFrequency"]))
ax6.plot(np.linspace(PSG_SP, PSG_EP, len(np.diff(xx_peaks).repeat(self.Config["ApplyFrequency"]))),
np.diff(xx_peaks).repeat(self.Config["ApplyFrequency"]), label="resp")
ax6.set_title("abd_interval")
ax6.set_ylim((10, 50))
width, height = fig.figbbox.width, fig.figbbox.height
fig.canvas.draw()
# 返回图片以便存到QPixImage
return canvas.buffer_rgba(), width, height
@njit("int64[:](int64[:],int64[:])", nogil=True, parallel=True)
def get_Correlate(a, v):
@ -472,6 +536,12 @@ class MainWindow(QMainWindow):
self.ui.pushButton_Refresh.setEnabled(True)
self.ui.pushButton_OpenFile.setEnabled(True)
self.ui.checkBox_NABD.setEnabled(False)
self.ui.checkBox_NTHO.setEnabled(False)
self.ui.checkBox_PABD.setEnabled(False)
self.ui.checkBox_PTHO.setEnabled(False)
self.ui.checkBox_custom.setEnabled(False)
# 绑定事件
# 刷新键分别获取PSG和XX文件夹里面的数据获取所有编号显示在下拉框比对编号同时存在的可选仅存在一个文件夹的编号不可选
@ -480,15 +550,17 @@ class MainWindow(QMainWindow):
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_JUMP.clicked.connect(self.__jump__)
# spin_custom 按下回车绑定事件
self.ui.spinBox_SelectEpoch.editingFinished.connect(self.__jump__)
self.ui.pushButton_EM1.clicked.connect(self.__EpochChange__)
self.ui.pushButton_EM10.clicked.connect(self.__EpochChange__)
self.ui.pushButton_EM100.clicked.connect(self.__EpochChange__)
self.ui.pushButton_EP1.clicked.connect(self.__EpochChange__)
self.ui.pushButton_EP10.clicked.connect(self.__EpochChange__)
self.ui.pushButton_EP100.clicked.connect(self.__EpochChange__)
self.ui.pushButton_SaveInfo.clicked.connect(self.__saveInfo__)
self.ui.pushButton_ReadInfo.clicked.connect(self.__readInfo__)
self.ui.pushButton_Exit.clicked.connect(self.__exit__)
# 按下checkbox_NTHO、PTHO、 PABD、NABD后启用pushbutton_Align
@ -498,6 +570,136 @@ class MainWindow(QMainWindow):
self.ui.checkBox_NABD.stateChanged.connect(self.__enableAlign__)
self.ui.spinBox_custom.valueChanged.connect(self.__enableAlign__)
def __readInfo__(self):
"""
读取信息
判断是否存在不存在不读取并提示
:return:
"""
sampNo = self.ui.comboBox_SelectFile.currentText()
if Path("./RespCoarseAlignInfo.csv").exists():
df = pd.read_csv("./RespCoarseAlignInfo.csv")
print(df)
df["sampNo"] = df["sampNo"].astype(str)
df = df[df["sampNo"] == sampNo]
print(df)
if len(df) == 0:
QMessageBox.warning(self, "警告", f"记录中无编号{sampNo},请计算对齐")
return
# 去最后一个
PSG_SampRate = df["PSG_SampRate"].values[-1]
XX_SampRate = df["XX_SampRate"].values[-1]
pos = df["pos"].values[-1]
epoch = df["epoch"].values[-1]
# 将信息写入界面
self.ui.spinBox_PSGFreq.setValue(PSG_SampRate)
self.ui.spinBox_XXFreq.setValue(XX_SampRate)
self.ui.spinBox_SelectEpoch.setValue(epoch)
self.ui.spinBox_custom.setValue(pos)
if pos > 0:
self.ui.spinBox_XXPreA.setValue(pos)
else:
self.ui.spinBox_PSGPreA.setValue(-pos)
# 加载到Conf中
self.data.Config["PSGConfig"].update({"PreA": self.ui.spinBox_PSGPreA.value(),
"PreCut": self.ui.spinBox_PSGPreCut.value(),
"PostCut": self.ui.spinBox_PSGPostCut.value()})
self.data.Config["XXConfig"].update({"PreA": self.ui.spinBox_XXPreA.value(),
"PreCut": self.ui.spinBox_XXPreCut.value(),
"PostCut": self.ui.spinBox_XXPostCut.value()})
relate = pos
reverse = 1
self.data.Config["XX_reverse"] = reverse
self.data.Config["pos"] = relate
epoch_min = max(0, relate // 30 // self.data.Config["ApplyFrequency"] + 1)
epoch_max = min(len(self.data.processed_THO) // 30 // self.data.Config["ApplyFrequency"] - 1,
(len(self.data.processed_XX) - relate) // 30 // self.data.Config["ApplyFrequency"] - 1)
self.ui.spinBox_SelectEpoch.setMinimum(epoch_min)
self.ui.spinBox_SelectEpoch.setMaximum(epoch_max)
self.ui.spinBox_SelectEpoch.setValue(epoch_min)
# set tooltip
self.ui.spinBox_SelectEpoch.setToolTip(f"最小值:{epoch_min}\n最大值:{epoch_max}")
self.ui.spinBox_SelectEpoch.setEnabled(True)
# 执行按下checkBox_custom
self.ui.checkBox_custom.setChecked(True)
ButtonState["Current"]["pushButton_JUMP"] = True
ButtonState["Current"]["pushButton_EM1"] = True
ButtonState["Current"]["pushButton_EM10"] = True
ButtonState["Current"]["pushButton_EM100"] = True
ButtonState["Current"]["pushButton_EP1"] = True
ButtonState["Current"]["pushButton_EP10"] = True
ButtonState["Current"]["pushButton_EP100"] = True
self.__enableAllButton__()
else:
QMessageBox.warning(self, "警告", f"没有保存记录请检查当前路径是否有RespCoarseAlignInfo.csv")
def __saveInfo__(self):
"""
保存信息
编号PSG采样率XinXiao采样率 相差位置pos观测Epoch保存时间
使用dataframe 保存到 csv中
首先判断csv是否存在不存在则新建存在则追加
:return:
"""
sampNo = self.ui.comboBox_SelectFile.currentText()
PSG_SampRate = self.ui.spinBox_PSGFreq.value()
XX_SampRate = self.ui.spinBox_XXFreq.value()
pos = self.data.Config["pos"]
epoch = self.ui.spinBox_SelectEpoch.value()
save_time = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
# 保存到csv中
df = pd.DataFrame({"sampNo": [sampNo], "PSG_SampRate": [PSG_SampRate], "XX_SampRate": [XX_SampRate],
"pos": [pos], "epoch": [epoch], "save_time": [save_time]})
if Path("./RespCoarseAlignInfo.csv").exists():
df.to_csv("./RespCoarseAlignInfo.csv", mode="a", header=False, index=False)
else:
df.to_csv("./RespCoarseAlignInfo.csv", mode="w", header=True, index=False)
# noinspection PyUnresolvedReferences
QMessageBox.information(self, "提示", "保存成功", QMessageBox.Ok)
def __EpochChange__(self):
# 获取当前值
value = self.ui.spinBox_SelectEpoch.value()
# print(self.sender())
# print(self.sender() == self.ui.pushButton_EM1)
# 判断按键
if self.sender() == self.ui.pushButton_EM1:
epoch = max(self.ui.spinBox_SelectEpoch.minimum(), value - 1)
elif self.sender() == self.ui.pushButton_EM10:
epoch = max(self.ui.spinBox_SelectEpoch.minimum(), value - 10)
elif self.sender() == self.ui.pushButton_EM100:
epoch = max(self.ui.spinBox_SelectEpoch.minimum(), value - 100)
elif self.sender() == self.ui.pushButton_EP1:
epoch = min(self.ui.spinBox_SelectEpoch.maximum(), value + 1)
elif self.sender() == self.ui.pushButton_EP10:
epoch = min(self.ui.spinBox_SelectEpoch.maximum(), value + 10)
elif self.sender() == self.ui.pushButton_EP100:
epoch = min(self.ui.spinBox_SelectEpoch.maximum(), value + 100)
else:
return
# print(epoch)
self.ui.spinBox_SelectEpoch.setValue(epoch)
QApplication.processEvents()
self.__jump__()
def __jump__(self):
self.__disableAllButton__()
self.ui.label_Info.setText("开始绘制···")
self.ui.progressBar.setValue(0)
# 获取选择的Epoch
epoch = self.ui.spinBox_SelectEpoch.value()
# 绘制图像
self.__plot__(epoch=epoch)
self.ui.progressBar.setValue(100)
self.ui.label_Info.setText(f"Epoch: {epoch}, 绘制完成")
self.__enableAllButton__()
def __enableAlign__(self):
self.__disableAllButton__()
self.ui.label_Info.setText("绘制对齐图像···")
@ -505,14 +707,19 @@ class MainWindow(QMainWindow):
QApplication.processEvents()
if self.ui.checkBox_NTHO.isChecked():
relate = int(self.ui.checkBox_NTHO.text())
reverse = -1
elif self.ui.checkBox_PTHO.isChecked():
relate = int(self.ui.checkBox_PTHO.text())
reverse = 1
elif self.ui.checkBox_PABD.isChecked():
relate = int(self.ui.checkBox_PABD.text())
reverse = 1
elif self.ui.checkBox_NABD.isChecked():
relate = int(self.ui.checkBox_NABD.text())
reverse = -1
elif self.ui.checkBox_custom.isChecked():
relate = self.ui.spinBox_custom.value()
reverse = 1
else:
return
@ -520,8 +727,27 @@ class MainWindow(QMainWindow):
self.data.Config["pos"] = relate
self.__plot__()
self.ui.label_Info.setText("相对位置:{}".format(relate))
# 设置epoch上下限
self.data.Config["XX_reverse"] = reverse
epoch_min = max(0, relate // 30 // self.data.Config["ApplyFrequency"] + 1)
epoch_max = min(len(self.data.processed_THO) // 30 // self.data.Config["ApplyFrequency"] - 1,
(len(self.data.processed_XX) - relate) // 30 // self.data.Config["ApplyFrequency"] - 1)
self.ui.spinBox_SelectEpoch.setMinimum(epoch_min)
self.ui.spinBox_SelectEpoch.setMaximum(epoch_max)
self.ui.spinBox_SelectEpoch.setValue(epoch_min)
# set tooltip
self.ui.spinBox_SelectEpoch.setToolTip(f"最小值:{epoch_min}\n最大值:{epoch_max}")
self.ui.spinBox_SelectEpoch.setEnabled(True)
ButtonState["Current"]["pushButton_JUMP"] = True
ButtonState["Current"]["pushButton_EM1"] = True
ButtonState["Current"]["pushButton_EM10"] = True
ButtonState["Current"]["pushButton_EM100"] = True
ButtonState["Current"]["pushButton_EP1"] = True
ButtonState["Current"]["pushButton_EP10"] = True
ButtonState["Current"]["pushButton_EP100"] = True
ButtonState["Current"]["pushButton_SaveInfo"] = True
self.__enableAllButton__()
self.ui.pushButton_JUMP.setEnabled(True)
def __getPosition__(self):
# 根据截断选择,对信号进行互相关操作,得到最大值的位置
@ -574,12 +800,19 @@ class MainWindow(QMainWindow):
tho_max2 = np.argmax(tho_relate2)
abd_max = np.argmax(abd_relate)
abd_max2 = np.argmax(abd_relate2)
pre = self.data.Config["PSGConfig"]["PreCut"] + self.data.Config["PSGConfig"]["PreA"]
pre = self.data.Config["PSGConfig"]["PreCut"] + self.data.Config["XXConfig"]["PostCut"]
bias = pre - len(self.data.processed_XX) + 1
self.ui.checkBox_PABD.setText(str(abd_max + bias))
self.ui.checkBox_PTHO.setText(str(tho_max + bias))
self.ui.checkBox_NABD.setText(str(abd_max2 + bias))
self.ui.checkBox_NTHO.setText(str(tho_max2 + bias))
self.ui.checkBox_PABD.setEnabled(True)
self.ui.checkBox_PTHO.setEnabled(True)
self.ui.checkBox_NABD.setEnabled(True)
self.ui.checkBox_NTHO.setEnabled(True)
self.ui.checkBox_custom.setEnabled(True)
# print(abd_max2)
self.ui.progressBar.setValue(100)
self.ui.label_Info.setText("计算完成")
self.__enableAllButton__()
@ -600,10 +833,18 @@ class MainWindow(QMainWindow):
self.ui.checkBox_custom.setChecked(False)
self.ui.spinBox_SelectEpoch.setValue(0)
self.ui.spinBox_custom.setValue(0)
self.ui.checkBox_PABD.setText("备选1")
self.ui.checkBox_PTHO.setText("备选2")
self.ui.checkBox_NABD.setText("备选3")
self.ui.checkBox_NTHO.setText("备选4")
self.ui.spinBox_custom.setEnabled(False)
self.ui.spinBox_SelectEpoch.setToolTip("")
self.ui.checkBox_PABD.setText("备选3")
self.ui.checkBox_PTHO.setText("备选1")
self.ui.checkBox_NABD.setText("备选4")
self.ui.checkBox_NTHO.setText("备选2")
self.ui.checkBox_PABD.setEnabled(False)
self.ui.checkBox_PTHO.setEnabled(False)
self.ui.checkBox_NABD.setEnabled(False)
self.ui.checkBox_NTHO.setEnabled(False)
self.ui.checkBox_custom.setEnabled(False)
self.ui.spinBox_SelectEpoch.setMinimum(0)
def __cutOff__(self):
self.ui.label_Info.setText("开始绘制···")
@ -635,15 +876,29 @@ class MainWindow(QMainWindow):
elif self.sender() == self.ui.pushButton_GetPos:
buffer, width, height = self.data.DrawPicCorrelate(*args, **kwargs)
elif self.sender() == self.ui.checkBox_NTHO:
buffer, width, height = self.data.DrawPicOTryAlign()
buffer, width, height = self.data.DrawPicTryAlign()
elif self.sender() == self.ui.checkBox_NABD:
buffer, width, height = self.data.DrawPicOTryAlign()
buffer, width, height = self.data.DrawPicTryAlign()
elif self.sender() == self.ui.checkBox_PTHO:
buffer, width, height = self.data.DrawPicOTryAlign()
buffer, width, height = self.data.DrawPicTryAlign()
elif self.sender() == self.ui.checkBox_PABD:
buffer, width, height = self.data.DrawPicOTryAlign()
buffer, width, height = self.data.DrawPicTryAlign()
elif self.sender() == self.ui.spinBox_custom:
buffer, width, height = self.data.DrawPicOTryAlign()
buffer, width, height = self.data.DrawPicTryAlign()
elif self.sender() == self.ui.pushButton_JUMP:
buffer, width, height = self.data.DrawPicByEpoch(*args, **kwargs)
elif self.sender() == self.ui.pushButton_EM1:
buffer, width, height = self.data.DrawPicByEpoch(*args, **kwargs)
elif self.sender() == self.ui.pushButton_EM10:
buffer, width, height = self.data.DrawPicByEpoch(*args, **kwargs)
elif self.sender() == self.ui.pushButton_EM100:
buffer, width, height = self.data.DrawPicByEpoch(*args, **kwargs)
elif self.sender() == self.ui.pushButton_EP1:
buffer, width, height = self.data.DrawPicByEpoch(*args, **kwargs)
elif self.sender() == self.ui.pushButton_EP10:
buffer, width, height = self.data.DrawPicByEpoch(*args, **kwargs)
elif self.sender() == self.ui.pushButton_EP100:
buffer, width, height = self.data.DrawPicByEpoch(*args, **kwargs)
else:
return
# 显示到labelPic上
@ -681,12 +936,12 @@ class MainWindow(QMainWindow):
sorted(PSGFiles)
sorted(XXFiles)
# 获取两文件夹下同时存在的编号
print(PSGFiles, XXFiles)
# 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)
# print(Files, FilesOnlyInPSG, FilesOnlyInXX)
# 均显示到下拉框
self.ui.comboBox_SelectFile.clear()
self.ui.comboBox_SelectFile.addItems([file for file in Files])
@ -803,6 +1058,7 @@ class MainWindow(QMainWindow):
self.__plot__()
self.ui.progressBar.setValue(100)
ButtonState["Current"]["pushButton_CutOff"] = True
ButtonState["Current"]["pushButton_ReadInfo"] = True
self.__enableAllButton__()

View File

@ -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, 281, 61))
self.verticalLayoutWidget_7.setGeometry(QRect(10, 20, 283, 61))
self.verticalLayout_8 = QVBoxLayout(self.verticalLayoutWidget_7)
self.verticalLayout_8.setObjectName(u"verticalLayout_8")
self.verticalLayout_8.setContentsMargins(0, 0, 0, 0)
@ -277,7 +277,7 @@ 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, 281, 121))
self.verticalLayoutWidget_3.setGeometry(QRect(10, 20, 281, 131))
self.verticalLayout_3 = QVBoxLayout(self.verticalLayoutWidget_3)
self.verticalLayout_3.setObjectName(u"verticalLayout_3")
self.verticalLayout_3.setContentsMargins(0, 0, 0, 0)
@ -454,7 +454,7 @@ class Ui_mainWindow(object):
self.pushButton_CutOff.setObjectName(u"pushButton_CutOff")
sizePolicy.setHeightForWidth(self.pushButton_CutOff.sizePolicy().hasHeightForWidth())
self.pushButton_CutOff.setSizePolicy(sizePolicy)
self.pushButton_CutOff.setMinimumSize(QSize(85, 0))
self.pushButton_CutOff.setMinimumSize(QSize(60, 0))
self.pushButton_CutOff.setMaximumSize(QSize(85, 16777215))
self.horizontalLayout_8.addWidget(self.pushButton_CutOff)
@ -467,6 +467,8 @@ class Ui_mainWindow(object):
self.pushButton_GetPos.setObjectName(u"pushButton_GetPos")
sizePolicy1.setHeightForWidth(self.pushButton_GetPos.sizePolicy().hasHeightForWidth())
self.pushButton_GetPos.setSizePolicy(sizePolicy1)
self.pushButton_GetPos.setMinimumSize(QSize(60, 0))
self.pushButton_GetPos.setMaximumSize(QSize(85, 16777215))
self.horizontalLayout_8.addWidget(self.pushButton_GetPos)
@ -474,6 +476,17 @@ class Ui_mainWindow(object):
self.horizontalLayout_8.addItem(self.horizontalSpacer_9)
self.pushButton_ReadInfo = QPushButton(self.verticalLayoutWidget_3)
self.pushButton_ReadInfo.setObjectName(u"pushButton_ReadInfo")
self.pushButton_ReadInfo.setMinimumSize(QSize(60, 0))
self.pushButton_ReadInfo.setMaximumSize(QSize(85, 16777215))
self.horizontalLayout_8.addWidget(self.pushButton_ReadInfo)
self.horizontalSpacer_7 = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum)
self.horizontalLayout_8.addItem(self.horizontalSpacer_7)
self.verticalLayout_3.addLayout(self.horizontalLayout_8)
@ -530,6 +543,8 @@ class Ui_mainWindow(object):
self.spinBox_custom.setEnabled(False)
self.spinBox_custom.setAlignment(Qt.AlignRight|Qt.AlignTrailing|Qt.AlignVCenter)
self.spinBox_custom.setButtonSymbols(QAbstractSpinBox.NoButtons)
self.spinBox_custom.setMinimum(-1000000)
self.spinBox_custom.setMaximum(1000000)
self.horizontalLayout_11.addWidget(self.spinBox_custom)
@ -585,26 +600,6 @@ class Ui_mainWindow(object):
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)
@ -625,6 +620,26 @@ class Ui_mainWindow(object):
self.verticalLayout_5.addLayout(self.horizontalLayout_12)
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.verticalLayout.addWidget(self.groupBox_6)
@ -766,7 +781,8 @@ class Ui_mainWindow(object):
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.pushButton_GetPos.setText(QCoreApplication.translate("mainWindow", u"\u8ba1\u7b97\u5bf9\u9f50", None))
self.pushButton_ReadInfo.setText(QCoreApplication.translate("mainWindow", u"\u8bfb\u53d6\u5bf9\u9f50", 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))
@ -776,14 +792,14 @@ class Ui_mainWindow(object):
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.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.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_SaveInfo.setText(QCoreApplication.translate("mainWindow", u"\u4fdd\u5b58\u5bf9\u9f50", None))
self.pushButton_Exit.setText(QCoreApplication.translate("mainWindow", u"\u9000\u51fa", None))
self.label_Info.setText(QCoreApplication.translate("mainWindow", u"Info", None))
self.label_Pic.setText(QCoreApplication.translate("mainWindow", u"TextLabel", None))

View File

@ -60,7 +60,7 @@
<rect>
<x>10</x>
<y>20</y>
<width>281</width>
<width>283</width>
<height>61</height>
</rect>
</property>
@ -493,7 +493,7 @@
<x>10</x>
<y>20</y>
<width>281</width>
<height>121</height>
<height>131</height>
</rect>
</property>
<layout class="QVBoxLayout" name="verticalLayout_3">
@ -957,7 +957,7 @@
</property>
<property name="minimumSize">
<size>
<width>85</width>
<width>60</width>
<height>0</height>
</size>
</property>
@ -993,8 +993,20 @@
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>60</width>
<height>0</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>85</width>
<height>16777215</height>
</size>
</property>
<property name="text">
<string>获取对齐位置</string>
<string>计算对齐</string>
</property>
</widget>
</item>
@ -1011,6 +1023,38 @@
</property>
</spacer>
</item>
<item>
<widget class="QPushButton" name="pushButton_ReadInfo">
<property name="minimumSize">
<size>
<width>60</width>
<height>0</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>85</width>
<height>16777215</height>
</size>
</property>
<property name="text">
<string>读取对齐</string>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer_7">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
</layout>
@ -1099,6 +1143,12 @@
<property name="buttonSymbols">
<enum>QAbstractSpinBox::NoButtons</enum>
</property>
<property name="minimum">
<number>-1000000</number>
</property>
<property name="maximum">
<number>1000000</number>
</property>
</widget>
</item>
</layout>
@ -1199,31 +1249,6 @@
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_14">
<item>
<widget class="QPushButton" name="pushButton_EM1">
<property name="text">
<string>Epoch-1</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="pushButton_EM10">
<property name="text">
<string>Epoch-10</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="pushButton_EM100">
<property name="text">
<string>Epoch-100</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_12">
<item>
@ -1249,6 +1274,31 @@
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_14">
<item>
<widget class="QPushButton" name="pushButton_EM1">
<property name="text">
<string>Epoch-1</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="pushButton_EM10">
<property name="text">
<string>Epoch-10</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="pushButton_EM100">
<property name="text">
<string>Epoch-100</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
</widget>
@ -1268,7 +1318,7 @@
</rect>
</property>
<property name="text">
<string>保存参数</string>
<string>保存对齐</string>
</property>
</widget>
<widget class="QPushButton" name="pushButton_Exit">