From 704513e2bf1b85ee3aa64760688ac35b1d4ea6a1 Mon Sep 17 00:00:00 2001 From: marques <20172333133@m.scnu.edu.cn> Date: Sat, 6 Sep 2025 14:11:53 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9EStage=E5=90=8C=E6=AD=A5?= =?UTF-8?q?=E8=B7=AF=E5=BE=84=E9=85=8D=E7=BD=AE=EF=BC=8C=E6=9B=B4=E6=96=B0?= =?UTF-8?q?=E7=95=8C=E9=9D=A2=E5=B8=83=E5=B1=80=E4=BB=A5=E6=94=AF=E6=8C=81?= =?UTF-8?q?Stage=E4=BF=A1=E5=8F=B7=E8=BE=93=E5=85=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- func/Module_SA_label_v2.py | 122 ++++++++--- func/Module_cut_PSG.py | 10 +- func/utils/ConfigParams.py | 1 + ui/setting/SA_label_input_setting_v2.py | 259 ++++++++++++------------ ui/setting/SA_label_input_setting_v2.ui | 16 +- 5 files changed, 237 insertions(+), 171 deletions(-) diff --git a/func/Module_SA_label_v2.py b/func/Module_SA_label_v2.py index 20ce6e0..b9b3b9d 100644 --- a/func/Module_SA_label_v2.py +++ b/func/Module_SA_label_v2.py @@ -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): diff --git a/func/Module_cut_PSG.py b/func/Module_cut_PSG.py index 65f51af..8442ad7 100644 --- a/func/Module_cut_PSG.py +++ b/func/Module_cut_PSG.py @@ -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()) diff --git a/func/utils/ConfigParams.py b/func/utils/ConfigParams.py index 50520ba..78d70c1 100644 --- a/func/utils/ConfigParams.py +++ b/func/utils/ConfigParams.py @@ -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_" diff --git a/ui/setting/SA_label_input_setting_v2.py b/ui/setting/SA_label_input_setting_v2.py index 0f428ce..fe5774b 100644 --- a/ui/setting/SA_label_input_setting_v2.py +++ b/ui/setting/SA_label_input_setting_v2.py @@ -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 diff --git a/ui/setting/SA_label_input_setting_v2.ui b/ui/setting/SA_label_input_setting_v2.ui index cee78e8..6253844 100644 --- a/ui/setting/SA_label_input_setting_v2.ui +++ b/ui/setting/SA_label_input_setting_v2.ui @@ -39,18 +39,24 @@ - + - false + true - 新增的呼吸暂停标签保存路径 + 同步后的Stage路径 - + + + true + + + true + - 保存路径 +