新增Stage同步路径配置,更新界面布局以支持Stage信号输入

This commit is contained in:
marques
2025-09-06 14:11:53 +08:00
parent 4abd6168cd
commit 704513e2bf
5 changed files with 237 additions and 171 deletions

View File

@ -106,6 +106,8 @@ class SettingWindow(QMainWindow):
self.ui.plainTextEdit_file_path_input_signal_SpO2.textChanged.connect(
self.__set_plaintext_font_color_by_path__)
self.ui.plainTextEdit_file_path_input_signal_Tho.textChanged.connect(self.__set_plaintext_font_color_by_path__)
self.ui.plainTextEdit_file_path_input_signal_Stage.textChanged.connect(
self.__set_plaintext_font_color_by_path__)
self.ui.pushButton_confirm.clicked.connect(self.__write_config__)
self.ui.pushButton_cancel.clicked.connect(self.__rollback_config__)
@ -126,12 +128,14 @@ class SettingWindow(QMainWindow):
self.params.update({
"Path": {
"Input_OrgBCG": sync_bcg_path,
"Input_Tho": sync_psg_path,
"Input_Abd": sync_psg_path,
"Input_FlowT": sync_psg_path,
"Input_FlowP": sync_psg_path,
"Input_SpO2": sync_psg_path,
"Input_Stage": sync_psg_path,
"Input_SA_Label": sync_psg_path / f"{Filename.SA_LABEL_SYNC}{Params.ENDSWITH_CSV}",
"Input_Artifact_A": label_path / f"{Filename.ARTIFACT_A}{Params.ENDSWITH_CSV}",
@ -145,6 +149,7 @@ class SettingWindow(QMainWindow):
def __write_config__(self):
# 从界面写入配置
self.params["Path"]["Input_Stage"] = self.ui.plainTextEdit_file_path_input_signal_Stage().toPlainText()
self.params["Path"]["Input_OrgBCG"] = self.ui.plainTextEdit_file_path_input_signal_OrgBCG.toPlainText()
self.params["Path"]["Input_Tho"] = self.ui.plainTextEdit_file_path_input_signal_Tho.toPlainText()
self.params["Path"]["Input_Abd"] = self.ui.plainTextEdit_file_path_input_signal_Abd.toPlainText()
@ -177,6 +182,7 @@ class SettingWindow(QMainWindow):
self.ui.spinBox_input_freq_signal_FlowP.setValue(self.params["Config"]["InputConfig"]["FlowPFreq"])
self.ui.spinBox_input_freq_signal_SpO2.setValue(self.params["Config"]["InputConfig"]["SpO2Freq"])
self.ui.plainTextEdit_file_path_input_signal_Stage.setPlainText(str(self.params["Path"]["Input_Stage"]))
self.ui.plainTextEdit_file_path_input_signal_OrgBCG.setPlainText(str(self.params["Path"]["Input_OrgBCG"]))
self.ui.plainTextEdit_file_path_input_signal_Tho.setPlainText(str(self.params["Path"]["Input_Tho"]))
self.ui.plainTextEdit_file_path_input_signal_Abd.setPlainText(str(self.params["Path"]["Input_Abd"]))
@ -189,7 +195,7 @@ class SettingWindow(QMainWindow):
# self.ui.plainTextEdit_file_path_save_2.setPlainText(str(self.params["Path"]["Save_2"]))
def __auto_find_file__(self):
check_signal_type_list = ["Input_OrgBCG", "Input_Tho", "Input_Abd", "Input_FlowT", "Input_FlowP", "Input_SpO2"]
check_signal_type_list = ["Input_OrgBCG", "Input_Tho", "Input_Abd", "Input_FlowT", "Input_FlowP", "Input_SpO2", "Input_Stage"]
def find_file(file_path: Path, _type, endswith):
if file_path.is_file():
@ -231,12 +237,14 @@ class SettingWindow(QMainWindow):
class Data:
def __init__(self, config):
self.config = config
self.Stage = None
self.OrgBCG = None
self.Tho = None
self.Abd = None
self.FlowT = None
self.FlowP = None
self.SpO2 = None
self.Stage_Resampled = None
self.lowPass20Hz = None
self.lowPassResp = None
self.OrgBCG_Resampled = None
@ -248,6 +256,7 @@ class Data:
self.lowPass20Hz_Resampled = None
self.lowPassResp_Resampled = None
self.channel = {
"Stage": None,
"orgdata": None,
"0.7lowpass_resp": None,
"Effort Tho": None,
@ -264,6 +273,14 @@ class Data:
"Mixed apnea": 4,
}
self.stage_to_value = {
"W": 5,
"N1": 3,
"N2": 2,
"N3": 1,
"R": 4,
}
self.event_label_origin = None
self.event_label_revised = None
self.event_index_origin = None
@ -277,7 +294,7 @@ class Data:
def open_file(self):
# 仅判断文件是否存在
check_file_list = ["Input_OrgBCG", "Input_Tho", "Input_Abd", "Input_FlowT", "Input_FlowP", "Input_SpO2",
"Input_SA_Label"]
"Input_SA_Label", "Input_Stage"]
for file_key in check_file_list:
if (not self.config["Path"][file_key].is_file()) or (not self.config["Path"][file_key].exists()):
@ -286,6 +303,8 @@ class Data:
Constants.FAILURE_REASON["Path_Not_Exist"])
try:
self.Stage = read_csv(self.config["Path"]["Input_Stage"], encoding=Params.UTF8_ENCODING,
header=None).to_numpy().reshape(-1)
self.OrgBCG = read_csv(self.config["Path"]["Input_OrgBCG"], encoding=Params.UTF8_ENCODING,
header=None).to_numpy().reshape(-1)
self.Tho = read_csv(self.config["Path"]["Input_Tho"], encoding=Params.UTF8_ENCODING,
@ -299,6 +318,7 @@ class Data:
self.SpO2 = read_csv(self.config["Path"]["Input_SpO2"], encoding=Params.UTF8_ENCODING,
header=None).to_numpy().reshape(-1)
if self.config["Path"]["Input_Artifact_A"].exists() and self.config["Path"]["Input_Artifact_A"].is_file():
self.Artifact = read_csv(self.config["Path"]["Input_Artifact_A"],
encoding=Params.UTF8_ENCODING,
@ -324,6 +344,12 @@ class Data:
"SignalSecond": int(len(self.OrgBCG) // self.config["Config"]["InputConfig"]["OrgBCGFreq"])
})
# 批量将睡眠分期按照映射转换为数字
for stage_str, stage_val in self.stage_to_value.items():
place(self.Stage, self.Stage == stage_str, stage_val)
self.Stage = self.Stage.astype(int)
# 根据秒数对信号截断
self.OrgBCG = self.OrgBCG[:self.config["SignalSecond"] * self.config["Config"]["InputConfig"]["OrgBCGFreq"]]
self.Tho = self.Tho[:self.config["SignalSecond"] * self.config["Config"]["InputConfig"]["ThoFreq"]]
@ -331,10 +357,14 @@ class Data:
self.FlowT = self.FlowT[:self.config["SignalSecond"] * self.config["Config"]["InputConfig"]["FlowTFreq"]]
self.FlowP = self.FlowP[:self.config["SignalSecond"] * self.config["Config"]["InputConfig"]["FlowPFreq"]]
self.SpO2 = self.SpO2[:self.config["SignalSecond"] * self.config["Config"]["InputConfig"]["SpO2Freq"]]
self.event_label_origin = zeros(len(self.OrgBCG))
self.event_label_revised = zeros(len(self.OrgBCG))
self.event_index_origin = zeros(len(self.OrgBCG))
self.event_index_revised = zeros(len(self.OrgBCG))
self.Stage = self.Stage[:self.config["SignalSecond"]]
plot_freq = self.config["Config"]["InputConfig"]["PlotFreq"]
self.event_label_origin = zeros(self.config["SignalSecond"] * plot_freq)
self.event_label_revised = zeros(self.config["SignalSecond"] * plot_freq)
self.event_index_origin = zeros(self.config["SignalSecond"])
self.event_index_revised = zeros(self.config["SignalSecond"])
return Result().success(info=Constants.INPUT_FINISHED)
@ -474,6 +504,7 @@ class Data:
plot_freq)
self.SpO2_Resampled = _resample_signal(self.SpO2, self.config["Config"]["InputConfig"]["SpO2Freq"],
plot_freq)
self.Stage_Resampled = _resample_signal(self.Stage, 1, plot_freq)
self.channel["orgdata"] = self.lowPass20Hz_Resampled
self.channel["0.7lowpass_resp"] = self.lowPassResp_Resampled
@ -482,6 +513,17 @@ class Data:
self.channel["Flow T"] = self.FlowT_Resampled
self.channel["Flow P"] = self.FlowP_Resampled
self.channel["SpO2"] = self.SpO2_Resampled
self.channel["Stage"] = self.Stage_Resampled
# 从内存中删除原始信号
del self.OrgBCG
del self.Tho
del self.Abd
del self.FlowT
del self.FlowP
del self.SpO2
del self.Stage
except Exception as e:
return Result().failure(info=Constants.RESAMPLE_FAILURE +
Constants.FAILURE_REASON["Resample_Exception"] + "\n" + format_exc())
@ -716,7 +758,7 @@ class MainWindow_SA_label(QMainWindow):
self.ui.verticalLayout_canvas.addWidget(self.canvas)
self.ui.verticalLayout_canvas.addWidget(self.figToolbar)
self.gs = gridspec.GridSpec(7, 1, height_ratios=[1, 1, 1, 1, 1, 3, 2])
self.gs = gridspec.GridSpec(8, 1, height_ratios=[1, 1, 1, 1, 1, 3, 2, 1])
self.fig.subplots_adjust(top=0.98, bottom=0.05, right=0.98, left=0.1, hspace=0, wspace=0)
self.ax0 = self.fig.add_subplot(self.gs[0])
self.ax0.grid(True)
@ -746,6 +788,9 @@ class MainWindow_SA_label(QMainWindow):
self.ax6 = self.fig.add_subplot(self.gs[6], sharex=self.ax0)
self.ax6.grid(True)
self.ax6.xaxis.set_major_formatter(Params.FORMATTER)
self.ax7 = self.fig.add_subplot(self.gs[7], sharex=self.ax0)
self.ax7.grid(True)
self.ax7.xaxis.set_major_formatter(Params.FORMATTER)
self.channel_to_ax = {
"SpO2": self.ax0,
@ -755,10 +800,12 @@ class MainWindow_SA_label(QMainWindow):
"Effort Abd": self.ax4,
"0.7lowpass_resp": self.ax5,
"orgdata": self.ax6,
"Stage": self.ax7,
}
self.channel_to_best_fit_checkbox = {
"SpO2": None,
"Stage": None,
"Flow T": self.ui.checkBox_best_flow,
"Flow P": self.ui.checkBox_best_flow,
"Effort Tho": self.ui.checkBox_best_effort,
@ -815,6 +862,9 @@ class MainWindow_SA_label(QMainWindow):
self.ui.pushButton_confirmLabel.clicked.connect(self.__slot_btn_confirmLabel__)
self.ui.pushButton_reset_event.clicked.connect(self.__reset_event__)
self.ui.pushButton_next_half.setProperty("offset", int(self.ui.comboBox_window_signal_length.lineEdit().text()) // 2)
self.ui.pushButton_previous_half.setProperty("offset", -int(self.ui.comboBox_window_signal_length.lineEdit().text()) // 2)
# 输入防抖
self.debounce_timer1 = QTimer()
self.debounce_timer1.setSingleShot(True)
@ -910,14 +960,19 @@ class MainWindow_SA_label(QMainWindow):
start_point = self.config["WindowStartSecond"] * plot_freq
end_point = start_point + self.config["WindowSignalSecond"] * plot_freq
for channel, ax in self.channel_to_ax.items():
if self.channel_to_best_fit_checkbox[channel] is not None and (
if (self.channel_to_best_fit_checkbox[channel] is not None) and (
not self.channel_to_best_fit_checkbox[channel].isChecked()):
continue
signal_max = self.data.channel[channel][start_point: end_point].max()
signal_min = self.data.channel[channel][start_point: end_point].min()
if channel == "SpO2":
signal_max = 100
signal_min = min(signal_min, 90)
elif channel == "Stage":
continue
else:
# 上限上移2%下限下移2%
delta = abs(signal_max - signal_min) * 0.02
@ -1700,37 +1755,37 @@ class MainWindow_SA_label(QMainWindow):
self.data = Data(self.config)
# 导入数据
PublicFunc.progressbar_update(self, 1, 9, Constants.INPUTTING_DATA, 0)
PublicFunc.progressbar_update(self, 1, 8, Constants.INPUTTING_DATA, 0)
result = self.data.open_file()
if not result.status:
PublicFunc.text_output(self.ui, "(1/9)" + result.info, Constants.TIPS_TYPE_ERROR)
PublicFunc.text_output(self.ui, "(1/8)" + result.info, Constants.TIPS_TYPE_ERROR)
PublicFunc.msgbox_output(self, result.info, Constants.MSGBOX_TYPE_ERROR)
PublicFunc.finish_operation(self, ButtonState)
return
else:
PublicFunc.text_output(self.ui, "(1/9)" + result.info, Constants.TIPS_TYPE_INFO)
PublicFunc.text_output(self.ui, "(1/8)" + result.info, Constants.TIPS_TYPE_INFO)
# 获取存档
PublicFunc.progressbar_update(self, 2, 9, Constants.LOADING_ARCHIVE, 15)
PublicFunc.progressbar_update(self, 2, 8, Constants.LOADING_ARCHIVE, 15)
result = self.data.get_archive()
if not result.status:
PublicFunc.text_output(self.ui, "(2/9)" + result.info, Constants.TIPS_TYPE_ERROR)
PublicFunc.text_output(self.ui, "(2/8)" + result.info, Constants.TIPS_TYPE_ERROR)
PublicFunc.msgbox_output(self, result.info, Constants.MSGBOX_TYPE_ERROR)
PublicFunc.finish_operation(self, ButtonState)
return
else:
PublicFunc.text_output(self.ui, "(2/9)" + result.info, Constants.TIPS_TYPE_INFO)
PublicFunc.text_output(self.ui, "(2/8)" + result.info, Constants.TIPS_TYPE_INFO)
# 保存
PublicFunc.progressbar_update(self, 3, 9, Constants.SAVING_DATA, 20)
PublicFunc.progressbar_update(self, 3, 8, Constants.SAVING_DATA, 20)
result = self.data.save()
if not result.status:
PublicFunc.text_output(self.ui, "(3/9)" + result.info, Constants.TIPS_TYPE_ERROR)
PublicFunc.text_output(self.ui, "(3/8)" + result.info, Constants.TIPS_TYPE_ERROR)
PublicFunc.msgbox_output(self, result.info, Constants.MSGBOX_TYPE_ERROR)
PublicFunc.finish_operation(self, ButtonState)
return
else:
PublicFunc.text_output(self.ui, "(3/9)" + result.info, Constants.TIPS_TYPE_INFO)
PublicFunc.text_output(self.ui, "(3/8)" + result.info, Constants.TIPS_TYPE_INFO)
# 保存
# PublicFunc.progressbar_update(self, 4, 9, Constants.SAVING_DATA, 25)
@ -1744,54 +1799,54 @@ class MainWindow_SA_label(QMainWindow):
# PublicFunc.text_output(self.ui, "(4/9)" + result.info, Constants.TIPS_TYPE_INFO)
# 数据预处理
PublicFunc.progressbar_update(self, 5, 9, Constants.PREPROCESSING_DATA, 30)
PublicFunc.progressbar_update(self, 4, 8, Constants.PREPROCESSING_DATA, 30)
result = self.data.preprocess()
if not result.status:
PublicFunc.text_output(self.ui, "(5/9)" + result.info, Constants.TIPS_TYPE_ERROR)
PublicFunc.text_output(self.ui, "(4/8)" + result.info, Constants.TIPS_TYPE_ERROR)
PublicFunc.msgbox_output(self, result.info, Constants.MSGBOX_TYPE_ERROR)
PublicFunc.finish_operation(self, ButtonState)
return
else:
PublicFunc.text_output(self.ui, "(5/9)" + result.info, Constants.TIPS_TYPE_INFO)
PublicFunc.text_output(self.ui, "(4/8)" + result.info, Constants.TIPS_TYPE_INFO)
# 重采样
PublicFunc.progressbar_update(self, 6, 9, Constants.RESAMPLING_DATA, 50)
PublicFunc.progressbar_update(self, 5, 8, Constants.RESAMPLING_DATA, 50)
result = self.data.resample()
for key, value in self.data.channel.items():
PublicFunc.text_output(self.ui, key + "重采样后的长度:" + str(len(value)), Constants.TIPS_TYPE_INFO)
if not result.status:
PublicFunc.text_output(self.ui, "(6/9)" + result.info, Constants.TIPS_TYPE_ERROR)
PublicFunc.text_output(self.ui, "(5/8)" + result.info, Constants.TIPS_TYPE_ERROR)
PublicFunc.msgbox_output(self, result.info, Constants.MSGBOX_TYPE_ERROR)
PublicFunc.finish_operation(self, ButtonState)
return
else:
PublicFunc.text_output(self.ui, "(6/9)" + result.info, Constants.TIPS_TYPE_INFO)
PublicFunc.text_output(self.ui, "(5/8)" + result.info, Constants.TIPS_TYPE_INFO)
# 绘图
PublicFunc.progressbar_update(self, 7, 9, Constants.DRAWING_DATA, 70)
PublicFunc.progressbar_update(self, 6, 8, Constants.DRAWING_DATA, 70)
# result = self.__plot__()
result = self.draw_signal()
if not result.status:
PublicFunc.text_output(self.ui, "(7/9)" + result.info, Constants.TIPS_TYPE_ERROR)
PublicFunc.text_output(self.ui, "(6/8)" + result.info, Constants.TIPS_TYPE_ERROR)
PublicFunc.msgbox_output(self, result.info, Constants.MSGBOX_TYPE_ERROR)
PublicFunc.finish_operation(self, ButtonState)
return
else:
PublicFunc.text_output(self.ui, "(7/9)" + result.info, Constants.TIPS_TYPE_INFO)
PublicFunc.text_output(self.ui, "(6/8)" + result.info, Constants.TIPS_TYPE_INFO)
# 更新表格
PublicFunc.progressbar_update(self, 8, 9, Constants.UPDATING_TABLEWIDGET, 90)
PublicFunc.progressbar_update(self, 7, 8, Constants.UPDATING_TABLEWIDGET, 90)
result = self.load_data_to_table()
if not result.status:
PublicFunc.text_output(self.ui, "(8/9)" + result.info, Constants.TIPS_TYPE_ERROR)
PublicFunc.text_output(self.ui, "(7/8)" + result.info, Constants.TIPS_TYPE_ERROR)
PublicFunc.msgbox_output(self, result.info, Constants.MSGBOX_TYPE_ERROR)
PublicFunc.finish_operation(self, ButtonState)
return
else:
PublicFunc.text_output(self.ui, "(8/9)" + result.info, Constants.TIPS_TYPE_INFO)
PublicFunc.text_output(self.ui, "(7/8)" + result.info, Constants.TIPS_TYPE_INFO)
# 更新信息
PublicFunc.progressbar_update(self, 9, 9, Constants.UPDATING_INFO, 95)
PublicFunc.progressbar_update(self, 8, 8, Constants.UPDATING_INFO, 95)
# result = self.update_UI_Args()
# if not result.status:
# PublicFunc.text_output(self.ui, "(9/9)" + result.info, Constants.TIPS_TYPE_ERROR)
@ -1931,6 +1986,7 @@ class MainWindow_SA_label(QMainWindow):
self.plt_interactive_event(channel="0.7lowpass_resp", label_df=self.data.df_revised)
self.plt_channel(channel="orgdata", start=0, end=self.config["SignalSecond"],
label_list=self.data.artifact_label, event_code=[6, 7, 8, 9, 10])
self.plt_channel(channel="Stage", start=0, end=self.config["SignalSecond"])
self.ax0.set_xlim(self.check_start_end(self.config["WindowStartSecond"], 0))
self.canvas.draw()
@ -1971,6 +2027,12 @@ class MainWindow_SA_label(QMainWindow):
place(y, y == 0, nan)
plt_.plot(linspace(start, end, (end - start) * plot_freq), y, color=self.color_cycle[j], linestyle="-")
if channel == "Stage":
plt_.set_yticks([1, 2, 3, 4, 5])
plt_.set_yticklabels(["N3", "N2", "N1", "REM", "Awake"])
plt_.set_ylim(0.5, 5.5)
plt_.legend(fontsize=8, loc=1)
def plt_interactive_event(self, channel, label_df):

View File

@ -214,20 +214,20 @@ class Data:
self.freq[key] = freq
except ValueError:
return Result().failure(info=Constants.CUT_PSG_GET_FILE_AND_FREQ_FAILURE +
Constants.FAILURE_REASON["Filename_Format_not_Correct"])
Constants.FAILURE_REASON["Filename_Format_not_Correct"] + f"\n{Config['ChannelInput']}")
for value in self.freq.values():
if value == 0:
return Result().failure(info=Constants.CUT_PSG_GET_FILE_AND_FREQ_FAILURE +
Constants.FAILURE_REASON["Filename_Format_not_Correct"])
Constants.FAILURE_REASON["Filename_Format_not_Correct"] + f"\n{Config['ChannelInput']}")
if not any((Config["LabelInput"]["SA Label"] + Config["EndWith"]["SA Label"]) in str(file) for file in Path(Config["Path"]["InputFolder"]).glob('*')):
return Result().failure(info=Constants.CUT_PSG_GET_FILE_AND_FREQ_FAILURE +
Constants.FAILURE_REASON["File_not_Exist"])
Constants.FAILURE_REASON["File_Not_Exist"])
if not any((Config["StartTime"] + Config["EndWith"]["StartTime"]) in str(file) for file in Path(Config["Path"]["InputFolder"]).glob('*')):
return Result().failure(info=Constants.CUT_PSG_GET_FILE_AND_FREQ_FAILURE +
Constants.FAILURE_REASON["File_not_Exist"])
Constants.FAILURE_REASON["File_Not_Exist"])
if not Path(Config["Path"]["InputAlignInfo"]).exists():
return Result().failure(info=Constants.CUT_PSG_GET_FILE_AND_FREQ_FAILURE +
Constants.FAILURE_REASON["File_not_Exist"])
Constants.FAILURE_REASON["File_Not_Exist"])
except Exception as e:
return Result().failure(info=Constants.CUT_PSG_GET_FILE_AND_FREQ_FAILURE +
Constants.FAILURE_REASON["Get_File_and_Freq_Excepetion"] + "\n" + format_exc())

View File

@ -42,6 +42,7 @@ class Filename:
BCG_SYNC: str = "BCG_Sync_"
# Folder: PSG_Aligned
STAGE_SYNC: str = "5_class_Sync_"
ECG_SYNC: str = "ECG_Sync_"
THO_SYNC: str = "Effort Tho_Sync_"
ABD_SYNC: str = "Effort Abd_Sync_"

View File

@ -15,10 +15,10 @@ from PySide6.QtGui import (QBrush, QColor, QConicalGradient, QCursor,
QFont, QFontDatabase, QGradient, QIcon,
QImage, QKeySequence, QLinearGradient, QPainter,
QPalette, QPixmap, QRadialGradient, QTransform)
from PySide6.QtWidgets import (QApplication, QCheckBox, QGridLayout, QGroupBox,
QHBoxLayout, QLabel, QMainWindow, QPlainTextEdit,
QPushButton, QSizePolicy, QSpinBox, QStatusBar,
QVBoxLayout, QWidget)
from PySide6.QtWidgets import (QApplication, QGridLayout, QGroupBox, QHBoxLayout,
QLabel, QMainWindow, QPlainTextEdit, QPushButton,
QSizePolicy, QSpinBox, QStatusBar, QVBoxLayout,
QWidget)
class Ui_MainWindow_SA_label_input_setting(object):
def setupUi(self, MainWindow_SA_label_input_setting):
@ -44,93 +44,33 @@ class Ui_MainWindow_SA_label_input_setting(object):
self.groupBox.setFont(font1)
self.gridLayout_2 = QGridLayout(self.groupBox)
self.gridLayout_2.setObjectName(u"gridLayout_2")
self.groupBox_file_path_save_2 = QGroupBox(self.groupBox)
self.groupBox_file_path_save_2.setObjectName(u"groupBox_file_path_save_2")
self.verticalLayout_10 = QVBoxLayout(self.groupBox_file_path_save_2)
self.groupBox_file_path_input_signal_Stage = QGroupBox(self.groupBox)
self.groupBox_file_path_input_signal_Stage.setObjectName(u"groupBox_file_path_input_signal_Stage")
self.groupBox_file_path_input_signal_Stage.setEnabled(True)
self.verticalLayout_10 = QVBoxLayout(self.groupBox_file_path_input_signal_Stage)
self.verticalLayout_10.setObjectName(u"verticalLayout_10")
self.plainTextEdit_file_path_save_2 = QPlainTextEdit(self.groupBox_file_path_save_2)
self.plainTextEdit_file_path_save_2.setObjectName(u"plainTextEdit_file_path_save_2")
self.plainTextEdit_file_path_input_signal_Stage = QPlainTextEdit(self.groupBox_file_path_input_signal_Stage)
self.plainTextEdit_file_path_input_signal_Stage.setObjectName(u"plainTextEdit_file_path_input_signal_Stage")
self.plainTextEdit_file_path_input_signal_Stage.setEnabled(True)
self.plainTextEdit_file_path_input_signal_Stage.setUndoRedoEnabled(True)
self.verticalLayout_10.addWidget(self.plainTextEdit_file_path_save_2)
self.verticalLayout_10.addWidget(self.plainTextEdit_file_path_input_signal_Stage)
self.gridLayout_2.addWidget(self.groupBox_file_path_save_2, 7, 1, 1, 1)
self.gridLayout_2.addWidget(self.groupBox_file_path_input_signal_Stage, 6, 1, 1, 1)
self.groupBox_file_path_input_label = QGroupBox(self.groupBox)
self.groupBox_file_path_input_label.setObjectName(u"groupBox_file_path_input_label")
self.verticalLayout_12 = QVBoxLayout(self.groupBox_file_path_input_label)
self.verticalLayout_12.setObjectName(u"verticalLayout_12")
self.plainTextEdit_file_path_input_label = QPlainTextEdit(self.groupBox_file_path_input_label)
self.plainTextEdit_file_path_input_label.setObjectName(u"plainTextEdit_file_path_input_label")
self.groupBox_file_path_input_artifact = QGroupBox(self.groupBox)
self.groupBox_file_path_input_artifact.setObjectName(u"groupBox_file_path_input_artifact")
self.verticalLayout_11 = QVBoxLayout(self.groupBox_file_path_input_artifact)
self.verticalLayout_11.setObjectName(u"verticalLayout_11")
self.plainTextEdit_file_path_input_artifact = QPlainTextEdit(self.groupBox_file_path_input_artifact)
self.plainTextEdit_file_path_input_artifact.setObjectName(u"plainTextEdit_file_path_input_artifact")
self.verticalLayout_12.addWidget(self.plainTextEdit_file_path_input_label)
self.verticalLayout_11.addWidget(self.plainTextEdit_file_path_input_artifact)
self.verticalLayout_11.setStretch(0, 2)
self.gridLayout_2.addWidget(self.groupBox_file_path_input_label, 6, 1, 1, 1)
self.groupBox_file_path_input_signal_FlowP = QGroupBox(self.groupBox)
self.groupBox_file_path_input_signal_FlowP.setObjectName(u"groupBox_file_path_input_signal_FlowP")
self.verticalLayout_8 = QVBoxLayout(self.groupBox_file_path_input_signal_FlowP)
self.verticalLayout_8.setObjectName(u"verticalLayout_8")
self.horizontalLayout_6 = QHBoxLayout()
self.horizontalLayout_6.setObjectName(u"horizontalLayout_6")
self.label_6 = QLabel(self.groupBox_file_path_input_signal_FlowP)
self.label_6.setObjectName(u"label_6")
self.label_6.setFont(font)
self.horizontalLayout_6.addWidget(self.label_6)
self.spinBox_input_freq_signal_FlowP = QSpinBox(self.groupBox_file_path_input_signal_FlowP)
self.spinBox_input_freq_signal_FlowP.setObjectName(u"spinBox_input_freq_signal_FlowP")
self.spinBox_input_freq_signal_FlowP.setFont(font)
self.spinBox_input_freq_signal_FlowP.setMinimum(1)
self.spinBox_input_freq_signal_FlowP.setMaximum(1000000)
self.horizontalLayout_6.addWidget(self.spinBox_input_freq_signal_FlowP)
self.verticalLayout_8.addLayout(self.horizontalLayout_6)
self.plainTextEdit_file_path_input_signal_FlowP = QPlainTextEdit(self.groupBox_file_path_input_signal_FlowP)
self.plainTextEdit_file_path_input_signal_FlowP.setObjectName(u"plainTextEdit_file_path_input_signal_FlowP")
self.verticalLayout_8.addWidget(self.plainTextEdit_file_path_input_signal_FlowP)
self.verticalLayout_8.setStretch(1, 2)
self.gridLayout_2.addWidget(self.groupBox_file_path_input_signal_FlowP, 4, 1, 1, 1)
self.groupBox_file_path_input_signal_Tho = QGroupBox(self.groupBox)
self.groupBox_file_path_input_signal_Tho.setObjectName(u"groupBox_file_path_input_signal_Tho")
self.verticalLayout_3 = QVBoxLayout(self.groupBox_file_path_input_signal_Tho)
self.verticalLayout_3.setObjectName(u"verticalLayout_3")
self.horizontalLayout_3 = QHBoxLayout()
self.horizontalLayout_3.setObjectName(u"horizontalLayout_3")
self.label_3 = QLabel(self.groupBox_file_path_input_signal_Tho)
self.label_3.setObjectName(u"label_3")
self.label_3.setFont(font)
self.horizontalLayout_3.addWidget(self.label_3)
self.spinBox_input_freq_signal_Tho = QSpinBox(self.groupBox_file_path_input_signal_Tho)
self.spinBox_input_freq_signal_Tho.setObjectName(u"spinBox_input_freq_signal_Tho")
self.spinBox_input_freq_signal_Tho.setFont(font)
self.spinBox_input_freq_signal_Tho.setMinimum(1)
self.spinBox_input_freq_signal_Tho.setMaximum(1000000)
self.horizontalLayout_3.addWidget(self.spinBox_input_freq_signal_Tho)
self.verticalLayout_3.addLayout(self.horizontalLayout_3)
self.plainTextEdit_file_path_input_signal_Tho = QPlainTextEdit(self.groupBox_file_path_input_signal_Tho)
self.plainTextEdit_file_path_input_signal_Tho.setObjectName(u"plainTextEdit_file_path_input_signal_Tho")
self.verticalLayout_3.addWidget(self.plainTextEdit_file_path_input_signal_Tho)
self.verticalLayout_3.setStretch(1, 2)
self.gridLayout_2.addWidget(self.groupBox_file_path_input_signal_Tho, 3, 1, 1, 1)
self.gridLayout_2.addWidget(self.groupBox_file_path_input_artifact, 5, 0, 1, 1)
self.groupBox_file_path_input_signal_FlowT = QGroupBox(self.groupBox)
self.groupBox_file_path_input_signal_FlowT.setObjectName(u"groupBox_file_path_input_signal_FlowT")
@ -162,20 +102,19 @@ class Ui_MainWindow_SA_label_input_setting(object):
self.verticalLayout_7.setStretch(1, 2)
self.gridLayout_2.addWidget(self.groupBox_file_path_input_signal_FlowT, 4, 0, 1, 1)
self.gridLayout_2.addWidget(self.groupBox_file_path_input_signal_FlowT, 3, 0, 1, 1)
self.groupBox_file_path_input_artifact = QGroupBox(self.groupBox)
self.groupBox_file_path_input_artifact.setObjectName(u"groupBox_file_path_input_artifact")
self.verticalLayout_11 = QVBoxLayout(self.groupBox_file_path_input_artifact)
self.verticalLayout_11.setObjectName(u"verticalLayout_11")
self.plainTextEdit_file_path_input_artifact = QPlainTextEdit(self.groupBox_file_path_input_artifact)
self.plainTextEdit_file_path_input_artifact.setObjectName(u"plainTextEdit_file_path_input_artifact")
self.groupBox_file_path_save = QGroupBox(self.groupBox)
self.groupBox_file_path_save.setObjectName(u"groupBox_file_path_save")
self.verticalLayout_4 = QVBoxLayout(self.groupBox_file_path_save)
self.verticalLayout_4.setObjectName(u"verticalLayout_4")
self.plainTextEdit_file_path_save = QPlainTextEdit(self.groupBox_file_path_save)
self.plainTextEdit_file_path_save.setObjectName(u"plainTextEdit_file_path_save")
self.verticalLayout_11.addWidget(self.plainTextEdit_file_path_input_artifact)
self.verticalLayout_4.addWidget(self.plainTextEdit_file_path_save)
self.verticalLayout_11.setStretch(0, 2)
self.gridLayout_2.addWidget(self.groupBox_file_path_input_artifact, 6, 0, 1, 1)
self.gridLayout_2.addWidget(self.groupBox_file_path_save, 6, 0, 1, 1)
self.groupBox_file_path_input_signal_SpO2 = QGroupBox(self.groupBox)
self.groupBox_file_path_input_signal_SpO2.setObjectName(u"groupBox_file_path_input_signal_SpO2")
@ -207,7 +146,51 @@ class Ui_MainWindow_SA_label_input_setting(object):
self.verticalLayout_9.setStretch(1, 2)
self.gridLayout_2.addWidget(self.groupBox_file_path_input_signal_SpO2, 1, 1, 1, 1)
self.gridLayout_2.addWidget(self.groupBox_file_path_input_signal_SpO2, 0, 1, 1, 1)
self.groupBox_file_path_input_signal_Tho = QGroupBox(self.groupBox)
self.groupBox_file_path_input_signal_Tho.setObjectName(u"groupBox_file_path_input_signal_Tho")
self.verticalLayout_3 = QVBoxLayout(self.groupBox_file_path_input_signal_Tho)
self.verticalLayout_3.setObjectName(u"verticalLayout_3")
self.horizontalLayout_3 = QHBoxLayout()
self.horizontalLayout_3.setObjectName(u"horizontalLayout_3")
self.label_3 = QLabel(self.groupBox_file_path_input_signal_Tho)
self.label_3.setObjectName(u"label_3")
self.label_3.setFont(font)
self.horizontalLayout_3.addWidget(self.label_3)
self.spinBox_input_freq_signal_Tho = QSpinBox(self.groupBox_file_path_input_signal_Tho)
self.spinBox_input_freq_signal_Tho.setObjectName(u"spinBox_input_freq_signal_Tho")
self.spinBox_input_freq_signal_Tho.setFont(font)
self.spinBox_input_freq_signal_Tho.setMinimum(1)
self.spinBox_input_freq_signal_Tho.setMaximum(1000000)
self.horizontalLayout_3.addWidget(self.spinBox_input_freq_signal_Tho)
self.verticalLayout_3.addLayout(self.horizontalLayout_3)
self.plainTextEdit_file_path_input_signal_Tho = QPlainTextEdit(self.groupBox_file_path_input_signal_Tho)
self.plainTextEdit_file_path_input_signal_Tho.setObjectName(u"plainTextEdit_file_path_input_signal_Tho")
self.verticalLayout_3.addWidget(self.plainTextEdit_file_path_input_signal_Tho)
self.verticalLayout_3.setStretch(1, 2)
self.gridLayout_2.addWidget(self.groupBox_file_path_input_signal_Tho, 2, 1, 1, 1)
self.groupBox_file_path_input_label = QGroupBox(self.groupBox)
self.groupBox_file_path_input_label.setObjectName(u"groupBox_file_path_input_label")
self.verticalLayout_12 = QVBoxLayout(self.groupBox_file_path_input_label)
self.verticalLayout_12.setObjectName(u"verticalLayout_12")
self.plainTextEdit_file_path_input_label = QPlainTextEdit(self.groupBox_file_path_input_label)
self.plainTextEdit_file_path_input_label.setObjectName(u"plainTextEdit_file_path_input_label")
self.verticalLayout_12.addWidget(self.plainTextEdit_file_path_input_label)
self.gridLayout_2.addWidget(self.groupBox_file_path_input_label, 5, 1, 1, 1)
self.groupBox_file_path_input_signal_Abd = QGroupBox(self.groupBox)
self.groupBox_file_path_input_signal_Abd.setObjectName(u"groupBox_file_path_input_signal_Abd")
@ -239,19 +222,7 @@ class Ui_MainWindow_SA_label_input_setting(object):
self.verticalLayout_6.setStretch(1, 2)
self.gridLayout_2.addWidget(self.groupBox_file_path_input_signal_Abd, 3, 0, 1, 1)
self.groupBox_file_path_save = QGroupBox(self.groupBox)
self.groupBox_file_path_save.setObjectName(u"groupBox_file_path_save")
self.verticalLayout_4 = QVBoxLayout(self.groupBox_file_path_save)
self.verticalLayout_4.setObjectName(u"verticalLayout_4")
self.plainTextEdit_file_path_save = QPlainTextEdit(self.groupBox_file_path_save)
self.plainTextEdit_file_path_save.setObjectName(u"plainTextEdit_file_path_save")
self.verticalLayout_4.addWidget(self.plainTextEdit_file_path_save)
self.gridLayout_2.addWidget(self.groupBox_file_path_save, 7, 0, 1, 1)
self.gridLayout_2.addWidget(self.groupBox_file_path_input_signal_Abd, 2, 0, 1, 1)
self.groupBox_file_path_input_signal_OrgBCG = QGroupBox(self.groupBox)
self.groupBox_file_path_input_signal_OrgBCG.setObjectName(u"groupBox_file_path_input_signal_OrgBCG")
@ -285,12 +256,39 @@ class Ui_MainWindow_SA_label_input_setting(object):
self.verticalLayout_5.setStretch(0, 2)
self.verticalLayout_5.setStretch(1, 3)
self.gridLayout_2.addWidget(self.groupBox_file_path_input_signal_OrgBCG, 1, 0, 1, 1)
self.gridLayout_2.addWidget(self.groupBox_file_path_input_signal_OrgBCG, 0, 0, 1, 1)
self.checkBox_auto_find_file = QCheckBox(self.groupBox)
self.checkBox_auto_find_file.setObjectName(u"checkBox_auto_find_file")
self.groupBox_file_path_input_signal_FlowP = QGroupBox(self.groupBox)
self.groupBox_file_path_input_signal_FlowP.setObjectName(u"groupBox_file_path_input_signal_FlowP")
self.verticalLayout_8 = QVBoxLayout(self.groupBox_file_path_input_signal_FlowP)
self.verticalLayout_8.setObjectName(u"verticalLayout_8")
self.horizontalLayout_6 = QHBoxLayout()
self.horizontalLayout_6.setObjectName(u"horizontalLayout_6")
self.label_6 = QLabel(self.groupBox_file_path_input_signal_FlowP)
self.label_6.setObjectName(u"label_6")
self.label_6.setFont(font)
self.gridLayout_2.addWidget(self.checkBox_auto_find_file, 0, 0, 1, 1)
self.horizontalLayout_6.addWidget(self.label_6)
self.spinBox_input_freq_signal_FlowP = QSpinBox(self.groupBox_file_path_input_signal_FlowP)
self.spinBox_input_freq_signal_FlowP.setObjectName(u"spinBox_input_freq_signal_FlowP")
self.spinBox_input_freq_signal_FlowP.setFont(font)
self.spinBox_input_freq_signal_FlowP.setMinimum(1)
self.spinBox_input_freq_signal_FlowP.setMaximum(1000000)
self.horizontalLayout_6.addWidget(self.spinBox_input_freq_signal_FlowP)
self.verticalLayout_8.addLayout(self.horizontalLayout_6)
self.plainTextEdit_file_path_input_signal_FlowP = QPlainTextEdit(self.groupBox_file_path_input_signal_FlowP)
self.plainTextEdit_file_path_input_signal_FlowP.setObjectName(u"plainTextEdit_file_path_input_signal_FlowP")
self.verticalLayout_8.addWidget(self.plainTextEdit_file_path_input_signal_FlowP)
self.verticalLayout_8.setStretch(1, 2)
self.gridLayout_2.addWidget(self.groupBox_file_path_input_signal_FlowP, 3, 1, 1, 1)
self.gridLayout.addWidget(self.groupBox, 0, 0, 1, 4)
@ -315,47 +313,46 @@ class Ui_MainWindow_SA_label_input_setting(object):
MainWindow_SA_label_input_setting.setWindowTitle(QCoreApplication.translate("MainWindow_SA_label_input_setting", u"\u5bfc\u5165\u8bbe\u7f6e", None))
self.pushButton_cancel.setText(QCoreApplication.translate("MainWindow_SA_label_input_setting", u"\u53d6\u6d88", None))
self.groupBox.setTitle(QCoreApplication.translate("MainWindow_SA_label_input_setting", u"\u6587\u4ef6\u8def\u5f84", None))
self.groupBox_file_path_save_2.setTitle(QCoreApplication.translate("MainWindow_SA_label_input_setting", u"\u65b0\u589e\u7684\u547c\u5438\u6682\u505c\u6807\u7b7e\u4fdd\u5b58\u8def\u5f84", None))
self.plainTextEdit_file_path_save_2.setPlaceholderText(QCoreApplication.translate("MainWindow_SA_label_input_setting", u"\u4fdd\u5b58\u8def\u5f84", None))
self.groupBox_file_path_input_label.setTitle(QCoreApplication.translate("MainWindow_SA_label_input_setting", u"\u540c\u6b65\u540e\u7684\u547c\u5438\u6682\u505c\u6807\u7b7e\u4fdd\u5b58\u8def\u5f84", None))
self.plainTextEdit_file_path_input_label.setPlaceholderText(QCoreApplication.translate("MainWindow_SA_label_input_setting", u"\u6587\u4ef6\u8def\u5f84", None))
self.groupBox_file_path_input_signal_FlowP.setTitle(QCoreApplication.translate("MainWindow_SA_label_input_setting", u"\u540c\u6b65\u540e\u7684Flow P\u8def\u5f84", None))
self.label_6.setText(QCoreApplication.translate("MainWindow_SA_label_input_setting", u"\u91c7\u6837\u7387(Hz)\uff1a", None))
self.plainTextEdit_file_path_input_signal_FlowP.setPlainText("")
self.plainTextEdit_file_path_input_signal_FlowP.setPlaceholderText(QCoreApplication.translate("MainWindow_SA_label_input_setting", u"\u6587\u4ef6\u8def\u5f84", None))
self.plainTextEdit_file_path_input_signal_FlowP.setProperty("signal_type", QCoreApplication.translate("MainWindow_SA_label_input_setting", u"FlowP", None))
self.groupBox_file_path_input_signal_Tho.setTitle(QCoreApplication.translate("MainWindow_SA_label_input_setting", u"\u540c\u6b65\u540e\u7684Effort Tho\u8def\u5f84", None))
self.label_3.setText(QCoreApplication.translate("MainWindow_SA_label_input_setting", u"\u91c7\u6837\u7387(Hz)\uff1a", None))
self.plainTextEdit_file_path_input_signal_Tho.setPlainText("")
self.plainTextEdit_file_path_input_signal_Tho.setPlaceholderText(QCoreApplication.translate("MainWindow_SA_label_input_setting", u"\u6587\u4ef6\u8def\u5f84", None))
self.plainTextEdit_file_path_input_signal_Tho.setProperty("signal_type", QCoreApplication.translate("MainWindow_SA_label_input_setting", u"Tho", None))
self.groupBox_file_path_input_signal_Stage.setTitle(QCoreApplication.translate("MainWindow_SA_label_input_setting", u"\u540c\u6b65\u540e\u7684Stage\u8def\u5f84", None))
self.plainTextEdit_file_path_input_signal_Stage.setPlaceholderText("")
self.groupBox_file_path_input_artifact.setTitle(QCoreApplication.translate("MainWindow_SA_label_input_setting", u"\u4f53\u52a8Artifact_a\u8def\u5f84", None))
self.plainTextEdit_file_path_input_artifact.setPlainText("")
self.plainTextEdit_file_path_input_artifact.setPlaceholderText(QCoreApplication.translate("MainWindow_SA_label_input_setting", u"\u6587\u4ef6\u8def\u5f84", None))
self.groupBox_file_path_input_signal_FlowT.setTitle(QCoreApplication.translate("MainWindow_SA_label_input_setting", u"\u540c\u6b65\u540e\u7684Flow T\u8def\u5f84", None))
self.label_5.setText(QCoreApplication.translate("MainWindow_SA_label_input_setting", u"\u91c7\u6837\u7387(Hz)\uff1a", None))
self.plainTextEdit_file_path_input_signal_FlowT.setPlainText("")
self.plainTextEdit_file_path_input_signal_FlowT.setPlaceholderText(QCoreApplication.translate("MainWindow_SA_label_input_setting", u"\u6587\u4ef6\u8def\u5f84", None))
self.plainTextEdit_file_path_input_signal_FlowT.setProperty("signal_type", QCoreApplication.translate("MainWindow_SA_label_input_setting", u"FlowT", None))
self.groupBox_file_path_input_artifact.setTitle(QCoreApplication.translate("MainWindow_SA_label_input_setting", u"\u4f53\u52a8Artifact_a\u8def\u5f84", None))
self.plainTextEdit_file_path_input_artifact.setPlainText("")
self.plainTextEdit_file_path_input_artifact.setPlaceholderText(QCoreApplication.translate("MainWindow_SA_label_input_setting", u"\u6587\u4ef6\u8def\u5f84", None))
self.groupBox_file_path_save.setTitle(QCoreApplication.translate("MainWindow_SA_label_input_setting", u"\u4fee\u6b63\u540e\u7684\u547c\u5438\u6682\u505c\u6807\u7b7e\u4fdd\u5b58\u8def\u5f84", None))
self.plainTextEdit_file_path_save.setPlaceholderText(QCoreApplication.translate("MainWindow_SA_label_input_setting", u"\u4fdd\u5b58\u8def\u5f84", None))
self.groupBox_file_path_input_signal_SpO2.setTitle(QCoreApplication.translate("MainWindow_SA_label_input_setting", u"\u540c\u6b65\u540e\u7684SpO2\u8def\u5f84", None))
self.label_7.setText(QCoreApplication.translate("MainWindow_SA_label_input_setting", u"\u91c7\u6837\u7387(Hz)\uff1a", None))
self.plainTextEdit_file_path_input_signal_SpO2.setPlainText("")
self.plainTextEdit_file_path_input_signal_SpO2.setPlaceholderText(QCoreApplication.translate("MainWindow_SA_label_input_setting", u"\u6587\u4ef6\u8def\u5f84", None))
self.plainTextEdit_file_path_input_signal_SpO2.setProperty("signal_type", QCoreApplication.translate("MainWindow_SA_label_input_setting", u"SpO2", None))
self.groupBox_file_path_input_signal_Tho.setTitle(QCoreApplication.translate("MainWindow_SA_label_input_setting", u"\u540c\u6b65\u540e\u7684Effort Tho\u8def\u5f84", None))
self.label_3.setText(QCoreApplication.translate("MainWindow_SA_label_input_setting", u"\u91c7\u6837\u7387(Hz)\uff1a", None))
self.plainTextEdit_file_path_input_signal_Tho.setPlainText("")
self.plainTextEdit_file_path_input_signal_Tho.setPlaceholderText(QCoreApplication.translate("MainWindow_SA_label_input_setting", u"\u6587\u4ef6\u8def\u5f84", None))
self.plainTextEdit_file_path_input_signal_Tho.setProperty("signal_type", QCoreApplication.translate("MainWindow_SA_label_input_setting", u"Tho", None))
self.groupBox_file_path_input_label.setTitle(QCoreApplication.translate("MainWindow_SA_label_input_setting", u"\u540c\u6b65\u540e\u7684\u547c\u5438\u6682\u505c\u6807\u7b7e\u4fdd\u5b58\u8def\u5f84", None))
self.plainTextEdit_file_path_input_label.setPlaceholderText(QCoreApplication.translate("MainWindow_SA_label_input_setting", u"\u6587\u4ef6\u8def\u5f84", None))
self.groupBox_file_path_input_signal_Abd.setTitle(QCoreApplication.translate("MainWindow_SA_label_input_setting", u"\u540c\u6b65\u540e\u7684Effort Abd\u8def\u5f84", None))
self.label_4.setText(QCoreApplication.translate("MainWindow_SA_label_input_setting", u"\u91c7\u6837\u7387(Hz)\uff1a", None))
self.plainTextEdit_file_path_input_signal_Abd.setPlainText("")
self.plainTextEdit_file_path_input_signal_Abd.setPlaceholderText(QCoreApplication.translate("MainWindow_SA_label_input_setting", u"\u6587\u4ef6\u8def\u5f84", None))
self.plainTextEdit_file_path_input_signal_Abd.setProperty("signal_type", QCoreApplication.translate("MainWindow_SA_label_input_setting", u"Abd", None))
self.groupBox_file_path_save.setTitle(QCoreApplication.translate("MainWindow_SA_label_input_setting", u"\u4fee\u6b63\u540e\u7684\u547c\u5438\u6682\u505c\u6807\u7b7e\u4fdd\u5b58\u8def\u5f84", None))
self.plainTextEdit_file_path_save.setPlaceholderText(QCoreApplication.translate("MainWindow_SA_label_input_setting", u"\u4fdd\u5b58\u8def\u5f84", None))
self.groupBox_file_path_input_signal_OrgBCG.setTitle(QCoreApplication.translate("MainWindow_SA_label_input_setting", u"\u540c\u6b65\u540e\u7684OrgBCG\u8def\u5f84", None))
self.label_2.setText(QCoreApplication.translate("MainWindow_SA_label_input_setting", u"\u91c7\u6837\u7387(Hz)\uff1a", None))
self.spinBox_input_freq_signal_OrgBCG.setPrefix("")
self.plainTextEdit_file_path_input_signal_OrgBCG.setPlainText("")
self.plainTextEdit_file_path_input_signal_OrgBCG.setPlaceholderText(QCoreApplication.translate("MainWindow_SA_label_input_setting", u"\u6587\u4ef6\u8def\u5f84", None))
self.plainTextEdit_file_path_input_signal_OrgBCG.setProperty("signal_type", QCoreApplication.translate("MainWindow_SA_label_input_setting", u"OrgBCG", None))
self.checkBox_auto_find_file.setText(QCoreApplication.translate("MainWindow_SA_label_input_setting", u"\u5ffd\u7565\u91c7\u6837\u7387 \u81ea\u52a8\u5339\u914d\u6587\u4ef6", None))
self.groupBox_file_path_input_signal_FlowP.setTitle(QCoreApplication.translate("MainWindow_SA_label_input_setting", u"\u540c\u6b65\u540e\u7684Flow P\u8def\u5f84", None))
self.label_6.setText(QCoreApplication.translate("MainWindow_SA_label_input_setting", u"\u91c7\u6837\u7387(Hz)\uff1a", None))
self.plainTextEdit_file_path_input_signal_FlowP.setPlainText("")
self.plainTextEdit_file_path_input_signal_FlowP.setPlaceholderText(QCoreApplication.translate("MainWindow_SA_label_input_setting", u"\u6587\u4ef6\u8def\u5f84", None))
self.plainTextEdit_file_path_input_signal_FlowP.setProperty("signal_type", QCoreApplication.translate("MainWindow_SA_label_input_setting", u"FlowP", None))
self.pushButton_confirm.setText(QCoreApplication.translate("MainWindow_SA_label_input_setting", u"\u786e\u5b9a", None))
# retranslateUi

View File

@ -39,18 +39,24 @@
</property>
<layout class="QGridLayout" name="gridLayout_2">
<item row="6" column="1">
<widget class="QGroupBox" name="groupBox_file_path_save_2">
<widget class="QGroupBox" name="groupBox_file_path_input_signal_Stage">
<property name="enabled">
<bool>false</bool>
<bool>true</bool>
</property>
<property name="title">
<string>新增的呼吸暂停标签保存路径</string>
<string>同步后的Stage路径</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_10">
<item>
<widget class="QPlainTextEdit" name="plainTextEdit_file_path_save_2">
<widget class="QPlainTextEdit" name="plainTextEdit_file_path_input_signal_Stage">
<property name="enabled">
<bool>true</bool>
</property>
<property name="undoRedoEnabled">
<bool>true</bool>
</property>
<property name="placeholderText">
<string>保存路径</string>
<string/>
</property>
</widget>
</item>