diff --git a/.gitignore b/.gitignore
index ea0da03..8c8c7cb 100644
--- a/.gitignore
+++ b/.gitignore
@@ -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
\ No newline at end of file
diff --git a/RespCoarseAlign.py b/RespCoarseAlign.py
index 050bd7b..95f734e 100644
--- a/RespCoarseAlign.py
+++ b/RespCoarseAlign.py
@@ -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__()
diff --git a/ui/Mian.py b/ui/Mian.py
index 5648eba..986b8d6 100644
--- a/ui/Mian.py
+++ b/ui/Mian.py
@@ -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))
diff --git a/ui/Mian.ui b/ui/Mian.ui
index a6c4af4..e923bc0 100644
--- a/ui/Mian.ui
+++ b/ui/Mian.ui
@@ -60,7 +60,7 @@
10
20
- 281
+ 283
61
@@ -493,7 +493,7 @@
10
20
281
- 121
+ 131
@@ -957,7 +957,7 @@
- 85
+ 60
0
@@ -993,8 +993,20 @@
0
+
+
+ 60
+ 0
+
+
+
+
+ 85
+ 16777215
+
+
- 获取对齐位置
+ 计算对齐
@@ -1011,6 +1023,38 @@
+ -
+
+
+
+ 60
+ 0
+
+
+
+
+ 85
+ 16777215
+
+
+
+ 读取对齐
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ 40
+ 20
+
+
+
+
@@ -1099,6 +1143,12 @@
QAbstractSpinBox::NoButtons
+
+ -1000000
+
+
+ 1000000
+
@@ -1199,31 +1249,6 @@
- -
-
-
-
-
-
- Epoch-1
-
-
-
- -
-
-
- Epoch-10
-
-
-
- -
-
-
- Epoch-100
-
-
-
-
-
-
-
@@ -1249,6 +1274,31 @@
+ -
+
+
-
+
+
+ Epoch-1
+
+
+
+ -
+
+
+ Epoch-10
+
+
+
+ -
+
+
+ Epoch-100
+
+
+
+
+
@@ -1268,7 +1318,7 @@
- 保存参数
+ 保存对齐