完成基本功能,需要对计算相关系数进一步优化避免卡顿
This commit is contained in:
parent
f7e1ba6d4e
commit
9fc85615d6
5
.gitignore
vendored
5
.gitignore
vendored
@ -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
|
@ -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__()
|
||||
|
||||
|
||||
|
72
ui/Mian.py
72
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))
|
||||
|
110
ui/Mian.ui
110
ui/Mian.ui
@ -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">
|
||||
|
Loading…
Reference in New Issue
Block a user