diff --git a/RespCoarseAlign.py b/RespCoarseAlign.py index ef24701..7bbcb0e 100644 --- a/RespCoarseAlign.py +++ b/RespCoarseAlign.py @@ -10,13 +10,15 @@ import sys from pathlib import Path -import mne +import pyedflib import numpy as np import pandas as pd -from PySide6.QtWidgets import QApplication, QMainWindow, QFileDialog, QMessageBox -from PySide6.QtCore import QFile +from PySide6.QtGui import QPixmap, QImage + +from PySide6.QtWidgets import QApplication, QMainWindow, QFileDialog, QMessageBox, QWidget, QPushButton +from matplotlib.backends.backend_agg import FigureCanvasAgg as FigureCanvas +from matplotlib.figure import Figure from scipy import signal -from scipy.signal import butter from ui.Mian import Ui_mainWindow as Ui_respCoarseAlign from ui.setings import Ui_MainWindow as Ui_Setting @@ -47,6 +49,41 @@ Conf = { "ApplyFrequency": 5 } +ButtonState = { + "Default": { + "pushButton_Refresh": True, + "pushButton_OpenFile": True, + "pushButton_Standardize": False, + "pushButton_CutOff": False, + "pushButton_GetPos": False, + "pushButton_Align": False, + "pushButton_JUMP": False, + "pushButton_EM1": False, + "pushButton_EM10": False, + "pushButton_EM100": False, + "pushButton_EP1": False, + "pushButton_EP10": False, + "pushButton_EP100": False, + "pushButton_SaveInfo": False, + "pushButton_Exit": True}, + "Current": { + "pushButton_Refresh": True, + "pushButton_OpenFile": True, + "pushButton_Standardize": False, + "pushButton_CutOff": False, + "pushButton_GetPos": False, + "pushButton_Align": False, + "pushButton_JUMP": False, + "pushButton_EM1": False, + "pushButton_EM10": False, + "pushButton_EM100": False, + "pushButton_EP1": False, + "pushButton_EP10": False, + "pushButton_EP100": False, + "pushButton_SaveInfo": False, + "pushButton_Exit": True} +} + class SettingWindow(QMainWindow): def __init__(self): @@ -146,22 +183,26 @@ class Data: self.raw_ABD = None self.raw_XX = None + self.processed_THO = None + self.processed_ABD = None + self.processed_XX = None + self.PSG_minutes = None self.XX_minutes = None def OpenFile(self): # 判断是edf还是npy或txt if self.PSGDataPath.suffix == ".edf": - with mne.io.read_raw_edf(self.PSGDataPath) as PSG: - # read THO ABD - if self.Config["PSGConfig"]["THOChannel"]["auto"]: - self.raw_THO = PSG.pick_channels(["THO"]).get_data()[0] - else: - self.raw_THO = PSG.pick_channels([self.Config["PSGConfig"]["THOChannel"]["Channel"]]).get_data()[0] - if self.Config["PSGConfig"]["ABDChannel"]["auto"]: - self.raw_ABD = PSG.pick_channels(["ABD"]).get_data()[0] - else: - self.raw_ABD = PSG.pick_channels([self.Config["PSGConfig"]["ABDChannel"]["Channel"]]).get_data()[0] + PSG = pyedflib.EdfReader(self.PSGDataPath.__str__()) + if self.Config["PSGConfig"]["THOChannel"]["auto"]: + self.raw_THO = PSG.readSignal(PSG.getSignalLabels().index('Effort THO')) + else: + self.raw_THO = PSG.readSignal(self.Config["PSGConfig"]["THOChannel"]["Channel"]) + if self.Config["PSGConfig"]["ABDChannel"]["auto"]: + self.raw_ABD = PSG.readSignal(PSG.getSignalLabels().index('Effort ABD')) + else: + self.raw_ABD = PSG.readSignal(self.Config["PSGConfig"]["ABDChannel"]["Channel"]) + PSG.close() else: return False, "PSG文件格式错误" @@ -173,8 +214,10 @@ class Data: return False, "XX文件格式错误" # 获取时长 - self.PSG_minutes = self.raw_THO.shape[0] / self.Config["PSGConfig"]["Frequency"] / 60 - self.XX_minutes = self.raw_XX.shape[0] / self.Config["XXConfig"]["Frequency"] / 60 + # print(self.raw_THO.shape, self.raw_XX.shape) + # print(self.Config["PSGConfig"]["Frequency"], self.Config["XXConfig"]["Frequency"]) + self.PSG_minutes = round(self.raw_THO.shape[0] / self.Config["PSGConfig"]["Frequency"] / 60) + self.XX_minutes = round(self.raw_XX.shape[0] / self.Config["XXConfig"]["Frequency"] / 60) return True, "读取成功" @@ -186,35 +229,157 @@ class Data: return signal.sosfilt(sos, data) # 滤波 - self.raw_THO = butter_bandpass_filter(self.raw_THO, self.Config["RespFilterConfig"]["LowCut"], - self.Config["RespFilterConfig"]["HighCut"], - self.Config["PSGConfig"]["Frequency"], - self.Config["RespFilterConfig"]["Order"]) - self.raw_ABD = butter_bandpass_filter(self.raw_ABD, self.Config["RespFilterConfig"]["LowCut"], - self.Config["RespFilterConfig"]["HighCut"], - self.Config["PSGConfig"]["Frequency"], - self.Config["RespFilterConfig"]["Order"]) - self.raw_XX = butter_bandpass_filter(self.raw_XX, self.Config["RespFilterConfig"]["LowCut"], - self.Config["RespFilterConfig"]["HighCut"], - self.Config["XXConfig"]["Frequency"], - self.Config["RespFilterConfig"]["Order"]) + self.processed_THO = butter_bandpass_filter(self.raw_THO, self.Config["RespFilterConfig"]["LowCut"], + self.Config["RespFilterConfig"]["HighCut"], + self.Config["PSGConfig"]["Frequency"], + self.Config["RespFilterConfig"]["Order"]) + self.processed_ABD = butter_bandpass_filter(self.raw_ABD, self.Config["RespFilterConfig"]["LowCut"], + self.Config["RespFilterConfig"]["HighCut"], + self.Config["PSGConfig"]["Frequency"], + self.Config["RespFilterConfig"]["Order"]) + self.processed_XX = butter_bandpass_filter(self.raw_XX, self.Config["RespFilterConfig"]["LowCut"], + self.Config["RespFilterConfig"]["HighCut"], + self.Config["XXConfig"]["Frequency"], + self.Config["RespFilterConfig"]["Order"]) - def Standardize(self): - if self.Config["RawSignal"]: - # 重采样 - self.raw_THO = signal.resample(self.raw_THO, int(self.PSG_minutes * 60 * self.Config["ApplyFrequency"])) - self.raw_ABD = signal.resample(self.raw_ABD, int(self.PSG_minutes * 60 * self.Config["ApplyFrequency"])) - self.raw_XX = signal.resample(self.raw_XX, int(self.XX_minutes * 60 * self.Config["ApplyFrequency"])) - else: - # 滤波 - self.__Filter__() - # 重采样 - self.raw_THO = signal.resample(self.raw_THO, int(self.PSG_minutes * 60 * self.Config["ApplyFrequency"])) - self.raw_ABD = signal.resample(self.raw_ABD, int(self.PSG_minutes * 60 * self.Config["ApplyFrequency"])) - self.raw_XX = signal.resample(self.raw_XX, int(self.XX_minutes * 60 * self.Config["ApplyFrequency"])) + return - # 判断是否去基线 - # 判断是否标准化 + def Standardize_0(self): + # 重采样 + self.processed_THO = signal.resample(self.raw_THO, int(self.PSG_minutes * 60 * self.Config["ApplyFrequency"])) + self.processed_ABD = signal.resample(self.raw_ABD, int(self.PSG_minutes * 60 * self.Config["ApplyFrequency"])) + self.processed_XX = signal.resample(self.raw_XX, int(self.XX_minutes * 60 * self.Config["ApplyFrequency"])) + return True, "原始信号仅重采样" + + def Standardize_1(self): + self.__Filter__() + return True, "呼吸提取完成 " + + def Standardize_2(self): + # 如果XX采样率大于PSG采样率,那么XX重采样到PSG采样率 + if self.Config["XXConfig"]["Frequency"] > self.Config["PSGConfig"]["Frequency"]: + # 用[::]完成 + self.processed_XX = self.processed_XX[ + ::int(self.Config["XXConfig"]["Frequency"] / self.Config["PSGConfig"]["Frequency"])] + # 如果XX采样率小于PSG采样率,那么XX重采样到PSG采样率 + elif self.Config["XXConfig"]["Frequency"] < self.Config["PSGConfig"]["Frequency"] < 100: + # 用repeat完成 + self.processed_XX = np.repeat(self.processed_XX, + int(self.Config["PSGConfig"]["Frequency"] / self.Config["XXConfig"][ + "Frequency"]), + axis=0) + # 修改Config + self.Config.update({"temp_frequency": self.Config["PSGConfig"]["Frequency"]}) + return True, "预重采样完成" + + def Standardize_3(self): + temp_frequency = self.Config["temp_frequency"] + # 判断是否去基线 + if self.Config["PSGConfig"]["PSGDelBase"]: + # 减去四秒钟平均滤波 + self.processed_THO = self.processed_THO - np.convolve(self.processed_THO, + np.ones(int(4 * temp_frequency)) / int( + 4 * temp_frequency), + mode='same') + self.processed_ABD = self.processed_ABD - np.convolve(self.processed_ABD, + np.ones(int(4 * temp_frequency)) / int( + 4 * temp_frequency), + mode='same') + if self.Config["XXConfig"]["XXDelBase"]: + self.processed_XX = self.processed_XX - np.convolve(self.processed_XX, + np.ones(int(4 * temp_frequency)) / int( + 4 * temp_frequency), + mode='same') + return True, "去基线完成" + + def Standardize_4(self): + # 判断是否标准化 + if self.Config["PSGConfig"]["PSGZScore"]: + self.processed_THO = (self.processed_THO - np.mean(self.processed_THO)) / np.std(self.processed_THO) + self.processed_ABD = (self.processed_ABD - np.mean(self.processed_ABD)) / np.std(self.processed_ABD) + if self.Config["XXConfig"]["XXZScore"]: + self.processed_XX = (self.processed_XX - np.mean(self.processed_XX)) / np.std(self.processed_XX) + + return True, "标准化完成" + + def Standardize_5(self): + # 重采样 + self.processed_THO = signal.resample(self.processed_THO, + int(self.PSG_minutes * 60 * self.Config["ApplyFrequency"])) + self.processed_ABD = signal.resample(self.processed_ABD, + int(self.PSG_minutes * 60 * self.Config["ApplyFrequency"])) + self.processed_XX = signal.resample(self.processed_XX, + int(self.XX_minutes * 60 * self.Config["ApplyFrequency"])) + + return True, "最终重采样完成" + + def DrawPicRawOverview(self): + fig = Figure(figsize=(8, 7), dpi=100) + canvas = FigureCanvas(fig) + max_x = max(self.processed_THO.shape[0], self.processed_ABD.shape[0], self.processed_XX.shape[0]) + ax1 = fig.add_subplot(311) + ax1.plot(self.processed_THO, color='blue') + ax1.set_xlim(0, max_x) + ax1.set_title("THO") + + ax2 = fig.add_subplot(312) + ax2.plot(self.processed_XX, color='blue') + ax2.set_xlim(0, max_x) + ax2.set_title("xinxiao") + + ax3 = fig.add_subplot(313) + ax3.plot(self.processed_ABD, color='blue') + ax3.set_xlim(0, max_x) + ax3.set_title("ABD") + + width, height = fig.figbbox.width, fig.figbbox.height + fig.canvas.draw() + # 返回图片以便存到QPixIamge + return canvas.buffer_rgba(), width, height + + def DrawPicOverviewWithCutOff(self): + fig = Figure(figsize=(8, 7), dpi=100) + canvas = FigureCanvas(fig) + max_x = max(self.processed_THO.shape[0] + self.Config["PSGConfig"]["PreA"], + self.processed_XX.shape[0] + self.Config["XXConfig"]["PreA"]) + min_x = min(self.Config["PSGConfig"]["PreA"], self.Config["XXConfig"]["PreA"], 0) + ax1 = fig.add_subplot(311) + ax1.plot( + np.linspace(self.Config["PSGConfig"]["PreA"], len(self.processed_THO) + self.Config["PSGConfig"]["PreA"], + len(self.processed_THO)), self.processed_THO, color='blue') + # 绘制x = PreCut的线 和 x = PostCut的虚线 + ax1.axvline(x=self.Config["PSGConfig"]["PreCut"] + self.Config["PSGConfig"]["PreA"], color='red', + linestyle='--') + ax1.axvline(x=len(self.processed_THO) - self.Config["PSGConfig"]["PostCut"] + self.Config["PSGConfig"]["PreA"], + color='red', linestyle='--') + + ax1.set_xlim(min_x, max_x) + ax1.set_title("THO") + + ax2 = fig.add_subplot(312) + ax2.plot(np.linspace(self.Config["XXConfig"]["PreA"], len(self.processed_XX) + self.Config["XXConfig"]["PreA"], + len(self.processed_XX)), self.processed_XX, color='blue') + ax2.axvline(x=self.Config["XXConfig"]["PreCut"] + self.Config["XXConfig"]["PreA"], color='red', linestyle='--') + ax2.axvline(x=len(self.processed_XX) - self.Config["XXConfig"]["PostCut"] + self.Config["XXConfig"]["PreA"], + color='red', linestyle='--') + ax2.set_xlim(min_x, max_x) + ax2.set_title("xinxiao") + + ax3 = fig.add_subplot(313) + ax3.plot( + np.linspace(self.Config["PSGConfig"]["PreA"], len(self.processed_ABD) + self.Config["PSGConfig"]["PreA"], + len(self.processed_ABD)), self.processed_ABD, color='blue') + ax3.axvline(x=self.Config["PSGConfig"]["PreCut"] + self.Config["PSGConfig"]["PreA"], color='red', + linestyle='--') + ax3.axvline(x=len(self.processed_THO) - self.Config["PSGConfig"]["PostCut"] + self.Config["PSGConfig"]["PreA"], + color='red', linestyle='--') + ax3.set_xlim(min_x, max_x) + ax3.set_title("ABD") + + width, height = fig.figbbox.width, fig.figbbox.height + fig.canvas.draw() + # 返回图片以便存到QPixIamge + return canvas.buffer_rgba(), width, height class MainWindow(QMainWindow): @@ -228,12 +393,74 @@ class MainWindow(QMainWindow): # checkbox custom 和SpinBox 互斥 self.ui.checkBox_custom.stateChanged.connect(self.__customChannel__) + self.__disableAllButton__() # 绑定事件 # 刷新键分别获取PSG和XX文件夹里面的数据,获取所有编号显示在下拉框,比对编号同时存在的可选,仅存在一个文件夹的编号不可选 self.ui.pushButton_Refresh.clicked.connect(self.__refresh__) self.ui.pushButton_OpenFile.clicked.connect(self.__openFile__) 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_Exit.clicked.connect(self.__exit__) + + def __resset__(self): + ButtonState["Current"].update(ButtonState["Default"].copy()) + ButtonState["Current"]["pushButton_Standardize"] = True + self.ui.spinBox_PSGPreA.setValue(0) + self.ui.spinBox_PSGPreCut.setValue(0) + self.ui.spinBox_PSGPostCut.setValue(0) + self.ui.spinBox_XXPreA.setValue(0) + self.ui.spinBox_XXPreCut.setValue(0) + self.ui.spinBox_XXPostCut.setValue(0) + self.ui.checkBox_NABD.setChecked(False) + self.ui.checkBox_NTHO.setChecked(False) + self.ui.checkBox_PABD.setChecked(False) + self.ui.checkBox_PTHO.setChecked(False) + self.ui.checkBox_custom.setChecked(False) + self.ui.spinBox_SelectEpoch.setValue(0) + self.ui.spinBox_custom.setValue(0) + + def __cutOff__(self): + Conf2 = self.data.Config.copy() + Conf2["PSGConfig"].update({"PreA": self.ui.spinBox_PSGPreA.value(), + "PreCut": self.ui.spinBox_PSGPreCut.value(), + "PostCut": self.ui.spinBox_PSGPostCut.value()}) + Conf2["XXConfig"].update({"PreA": self.ui.spinBox_XXPreA.value(), + "PreCut": self.ui.spinBox_XXPreCut.value(), + "PostCut": self.ui.spinBox_XXPostCut.value()}) + + self.data.Config = Conf2 + self.__plot__() + + # matplotlib 绘制图像 + def __plot__(self): + # 判读是哪个按钮点击调用的本程序 + if self.sender() == self.ui.pushButton_Standardize: + buffer, width, height = self.data.DrawPicRawOverview() + elif self.sender() == self.ui.pushButton_CutOff: + buffer, width, height = self.data.DrawPicOverviewWithCutOff() + else: + return + # 显示到labelPic上 + img = QImage(buffer, width, height, QImage.Format_RGBA8888) + self.ui.label_Pic.setPixmap(QPixmap(img)) + + # noinspection PyUnresolvedReferences + def __exit__(self): + # 选择是否确认退出 + reply = QMessageBox.question(self, '确认', '确认退出吗?', QMessageBox.Yes | QMessageBox.No, QMessageBox.No) + if reply == QMessageBox.Yes: + self.close() def __customChannel__(self, state): if state == 2: @@ -256,6 +483,8 @@ class MainWindow(QMainWindow): # 获取两文件夹下所有的txt和npy文件编号 PSGFiles = [file.stem for file in PSGPath.glob("*.edf")] XXFiles = [file.stem for file in XXPath.glob("*.txt")] + [file.stem for file in XXPath.glob("*.npy")] + sorted(PSGFiles) + sorted(XXFiles) # 获取两文件夹下同时存在的编号 print(PSGFiles, XXFiles) Files = list(set(PSGFiles).intersection(set(XXFiles))) @@ -277,7 +506,31 @@ class MainWindow(QMainWindow): self.ui.comboBox_SelectFile.model().item( FilesOnlyInXX.index(file) + len(Files) + len(FilesOnlyInPSG)).setEnabled(False) + def __disableAllButton__(self): + # 禁用所有按钮 + all_widgets = self.centralWidget().findChildren(QWidget) + + # 迭代所有部件,查找按钮并禁用它们 + for widget in all_widgets: + if isinstance(widget, QPushButton): + if widget.objectName() in ButtonState["Current"].keys(): + widget.setEnabled(ButtonState["Current"][widget.objectName()]) + + def __enableAllButton__(self): + # 启用按钮 + all_widgets = self.centralWidget().findChildren(QWidget) + + # 迭代所有部件,查找按钮并启用它们 + for widget in all_widgets: + if isinstance(widget, QPushButton): + if widget.objectName() in ButtonState["Current"].keys(): + widget.setEnabled(ButtonState["Current"][widget.objectName()]) + def __openFile__(self): + self.ui.label_Info.setText("正在打开文件...") + self.__disableAllButton__() + # 长时间操作,刷新界面防止卡顿 + QApplication.processEvents() # 获取checkbox状态 self.data = Data(Path(self.setting.ui.lineEdit_PSGFilePath.text()), Path(self.setting.ui.lineEdit_XXFilePath.text()), @@ -287,13 +540,21 @@ class MainWindow(QMainWindow): if not opened: QMessageBox.warning(self, "警告", info) self.ui.label_Info.setText(info) - return else: self.ui.label_PSGmins.setText(str(self.data.PSG_minutes)) self.ui.label_XXmins.setText(str(self.data.XX_minutes)) + self.ui.progressBar.setValue(100) self.ui.label_Info.setText(info) + self.__resset__() + + + self.__enableAllButton__() def __standardize__(self): + self.ui.progressBar.setValue(0) + self.ui.label_Info.setText("正在标准化...") + self.__disableAllButton__() + QApplication.processEvents() Conf2 = self.data.Config.copy() Conf2["RawSignal"] = self.ui.checkBox_RawSignal.isChecked() Conf2["PSGConfig"].update({ @@ -307,7 +568,48 @@ class MainWindow(QMainWindow): "Frequency": self.ui.spinBox_XXFreq.value(), }) self.data.Config = Conf2 - self.data.Standardize() + if self.data.Config["RawSignal"]: + opened, info = self.data.Standardize_0() + if not opened: + QMessageBox.warning(self, "警告", info) + self.ui.label_Info.setText(info) + else: + self.ui.progressBar.setValue(100) + self.ui.label_Info.setText(info) + else: + self.ui.label_Info.setText('正在进行呼吸提取...') + QApplication.processEvents() + + opened, info = self.data.Standardize_1() + self.ui.label_Info.setText(info) + self.ui.progressBar.setValue(10) + QApplication.processEvents() + + opened, info = self.data.Standardize_2() + self.ui.progressBar.setValue(30) + self.ui.label_Info.setText(info) + QApplication.processEvents() + + opened, info = self.data.Standardize_3() + self.ui.label_Info.setText(info) + self.ui.progressBar.setValue(50) + QApplication.processEvents() + + opened, info = self.data.Standardize_4() + self.ui.label_Info.setText(info) + self.ui.progressBar.setValue(70) + QApplication.processEvents() + + opened, info = self.data.Standardize_5() + self.ui.label_Info.setText(info) + self.ui.progressBar.setValue(90) + QApplication.processEvents() + + self.__plot__() + self.ui.progressBar.setValue(100) + ButtonState["Current"]["pushButton_CutOff"] = True + ButtonState["Current"]["pushButton_GetPos"] = True + self.__enableAllButton__() if __name__ == "__main__": diff --git a/config.yaml b/config.yaml index 4ffe01b..04d3951 100644 --- a/config.yaml +++ b/config.yaml @@ -1,4 +1,4 @@ -ApplyFrequency: 100 +ApplyFrequency: 5 PSGConfig: ABDChannel: Channel: 4 @@ -9,9 +9,9 @@ PSGConfig: Channel: 3 auto: true RespFilterConfig: - HighCut: 0.71 + HighCut: 0.7 LowCut: 0.01 Order: 4 XXConfig: - Frequency: 100 + Frequency: 1000 Path: D:/code/RespCoarseAlignment/Data/XX diff --git a/ui/Mian.py b/ui/Mian.py index 34df4db..dc72806 100644 --- a/ui/Mian.py +++ b/ui/Mian.py @@ -33,7 +33,7 @@ class Ui_mainWindow(object): sizePolicy.setHeightForWidth(mainWindow.sizePolicy().hasHeightForWidth()) mainWindow.setSizePolicy(sizePolicy) mainWindow.setMinimumSize(QSize(1200, 800)) - mainWindow.setMaximumSize(QSize(1920, 1080)) + mainWindow.setMaximumSize(QSize(1200, 800)) mainWindow.setSizeIncrement(QSize(4, 3)) self.actionDefault_Configuration = QAction(mainWindow) self.actionDefault_Configuration.setObjectName(u"actionDefault_Configuration") @@ -41,7 +41,7 @@ class Ui_mainWindow(object): self.centralwidget.setObjectName(u"centralwidget") self.horizontalLayoutWidget = QWidget(self.centralwidget) self.horizontalLayoutWidget.setObjectName(u"horizontalLayoutWidget") - self.horizontalLayoutWidget.setGeometry(QRect(10, 10, 1181, 741)) + self.horizontalLayoutWidget.setGeometry(QRect(10, 10, 1181, 751)) self.horizontalLayout = QHBoxLayout(self.horizontalLayoutWidget) self.horizontalLayout.setObjectName(u"horizontalLayout") self.horizontalLayout.setContentsMargins(0, 0, 0, 0) @@ -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, 274, 71)) + self.verticalLayoutWidget_7.setGeometry(QRect(10, 20, 281, 51)) self.verticalLayout_8 = QVBoxLayout(self.verticalLayoutWidget_7) self.verticalLayout_8.setObjectName(u"verticalLayout_8") self.verticalLayout_8.setContentsMargins(0, 0, 0, 0) @@ -277,128 +277,178 @@ 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, 271, 91)) + self.verticalLayoutWidget_3.setGeometry(QRect(10, 20, 281, 112)) self.verticalLayout_3 = QVBoxLayout(self.verticalLayoutWidget_3) self.verticalLayout_3.setObjectName(u"verticalLayout_3") self.verticalLayout_3.setContentsMargins(0, 0, 0, 0) self.horizontalLayout_6 = QHBoxLayout() self.horizontalLayout_6.setObjectName(u"horizontalLayout_6") - self.label_24 = QLabel(self.verticalLayoutWidget_3) - self.label_24.setObjectName(u"label_24") - sizePolicy.setHeightForWidth(self.label_24.sizePolicy().hasHeightForWidth()) - self.label_24.setSizePolicy(sizePolicy) - self.label_24.setMaximumSize(QSize(65, 16777215)) + self.label_25 = QLabel(self.verticalLayoutWidget_3) + self.label_25.setObjectName(u"label_25") + sizePolicy.setHeightForWidth(self.label_25.sizePolicy().hasHeightForWidth()) + self.label_25.setSizePolicy(sizePolicy) + self.label_25.setMaximumSize(QSize(65, 16777215)) - self.horizontalLayout_6.addWidget(self.label_24) + self.horizontalLayout_6.addWidget(self.label_25) - self.spinBox_PSGPre = QSpinBox(self.verticalLayoutWidget_3) - self.spinBox_PSGPre.setObjectName(u"spinBox_PSGPre") - sizePolicy1.setHeightForWidth(self.spinBox_PSGPre.sizePolicy().hasHeightForWidth()) - self.spinBox_PSGPre.setSizePolicy(sizePolicy1) - self.spinBox_PSGPre.setMinimumSize(QSize(60, 0)) - self.spinBox_PSGPre.setMaximumSize(QSize(100, 16777215)) - self.spinBox_PSGPre.setAlignment(Qt.AlignRight|Qt.AlignTrailing|Qt.AlignVCenter) - self.spinBox_PSGPre.setButtonSymbols(QAbstractSpinBox.NoButtons) - self.spinBox_PSGPre.setMinimum(0) - self.spinBox_PSGPre.setMaximum(1000) - self.spinBox_PSGPre.setValue(0) + self.spinBox_PSGPreA = QSpinBox(self.verticalLayoutWidget_3) + self.spinBox_PSGPreA.setObjectName(u"spinBox_PSGPreA") + sizePolicy1.setHeightForWidth(self.spinBox_PSGPreA.sizePolicy().hasHeightForWidth()) + self.spinBox_PSGPreA.setSizePolicy(sizePolicy1) + self.spinBox_PSGPreA.setMinimumSize(QSize(60, 0)) + self.spinBox_PSGPreA.setMaximumSize(QSize(100, 16777215)) + self.spinBox_PSGPreA.setToolTipDuration(2) + self.spinBox_PSGPreA.setAlignment(Qt.AlignRight|Qt.AlignTrailing|Qt.AlignVCenter) + self.spinBox_PSGPreA.setButtonSymbols(QAbstractSpinBox.NoButtons) + self.spinBox_PSGPreA.setMinimum(0) + self.spinBox_PSGPreA.setMaximum(300000) + self.spinBox_PSGPreA.setValue(0) - self.horizontalLayout_6.addWidget(self.spinBox_PSGPre) + self.horizontalLayout_6.addWidget(self.spinBox_PSGPreA) - self.horizontalSpacer = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum) + self.horizontalSpacer_10 = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum) - self.horizontalLayout_6.addItem(self.horizontalSpacer) + self.horizontalLayout_6.addItem(self.horizontalSpacer_10) - self.label_22 = QLabel(self.verticalLayoutWidget_3) - self.label_22.setObjectName(u"label_22") - sizePolicy.setHeightForWidth(self.label_22.sizePolicy().hasHeightForWidth()) - self.label_22.setSizePolicy(sizePolicy) - self.label_22.setMaximumSize(QSize(72, 16777215)) - - self.horizontalLayout_6.addWidget(self.label_22) - - self.spinBox_PSGAft = QSpinBox(self.verticalLayoutWidget_3) - self.spinBox_PSGAft.setObjectName(u"spinBox_PSGAft") - sizePolicy1.setHeightForWidth(self.spinBox_PSGAft.sizePolicy().hasHeightForWidth()) - self.spinBox_PSGAft.setSizePolicy(sizePolicy1) - self.spinBox_PSGAft.setMinimumSize(QSize(60, 0)) - self.spinBox_PSGAft.setMaximumSize(QSize(100, 16777215)) - self.spinBox_PSGAft.setAlignment(Qt.AlignRight|Qt.AlignTrailing|Qt.AlignVCenter) - self.spinBox_PSGAft.setButtonSymbols(QAbstractSpinBox.NoButtons) - self.spinBox_PSGAft.setMinimum(0) - self.spinBox_PSGAft.setMaximum(1000) - self.spinBox_PSGAft.setValue(0) - - self.horizontalLayout_6.addWidget(self.spinBox_PSGAft) - - - self.verticalLayout_3.addLayout(self.horizontalLayout_6) - - self.horizontalLayout_7 = QHBoxLayout() - self.horizontalLayout_7.setObjectName(u"horizontalLayout_7") self.label_21 = QLabel(self.verticalLayoutWidget_3) self.label_21.setObjectName(u"label_21") sizePolicy.setHeightForWidth(self.label_21.sizePolicy().hasHeightForWidth()) self.label_21.setSizePolicy(sizePolicy) self.label_21.setMaximumSize(QSize(65, 16777215)) - self.horizontalLayout_7.addWidget(self.label_21) + self.horizontalLayout_6.addWidget(self.label_21) - self.spinBox_XXPre = QSpinBox(self.verticalLayoutWidget_3) - self.spinBox_XXPre.setObjectName(u"spinBox_XXPre") - sizePolicy1.setHeightForWidth(self.spinBox_XXPre.sizePolicy().hasHeightForWidth()) - self.spinBox_XXPre.setSizePolicy(sizePolicy1) - self.spinBox_XXPre.setMinimumSize(QSize(60, 0)) - self.spinBox_XXPre.setMaximumSize(QSize(100, 16777215)) - self.spinBox_XXPre.setAlignment(Qt.AlignRight|Qt.AlignTrailing|Qt.AlignVCenter) - self.spinBox_XXPre.setButtonSymbols(QAbstractSpinBox.NoButtons) - self.spinBox_XXPre.setMinimum(0) - self.spinBox_XXPre.setMaximum(0) - self.spinBox_XXPre.setValue(0) + self.spinBox_XXPreA = QSpinBox(self.verticalLayoutWidget_3) + self.spinBox_XXPreA.setObjectName(u"spinBox_XXPreA") + sizePolicy1.setHeightForWidth(self.spinBox_XXPreA.sizePolicy().hasHeightForWidth()) + self.spinBox_XXPreA.setSizePolicy(sizePolicy1) + self.spinBox_XXPreA.setMinimumSize(QSize(60, 0)) + self.spinBox_XXPreA.setMaximumSize(QSize(100, 16777215)) + self.spinBox_XXPreA.setAlignment(Qt.AlignRight|Qt.AlignTrailing|Qt.AlignVCenter) + self.spinBox_XXPreA.setButtonSymbols(QAbstractSpinBox.NoButtons) + self.spinBox_XXPreA.setMinimum(0) + self.spinBox_XXPreA.setMaximum(300000) + self.spinBox_XXPreA.setValue(0) - self.horizontalLayout_7.addWidget(self.spinBox_XXPre) + self.horizontalLayout_6.addWidget(self.spinBox_XXPreA) + + + self.verticalLayout_3.addLayout(self.horizontalLayout_6) + + self.horizontalLayout_2 = QHBoxLayout() + self.horizontalLayout_2.setObjectName(u"horizontalLayout_2") + self.label_24 = QLabel(self.verticalLayoutWidget_3) + self.label_24.setObjectName(u"label_24") + sizePolicy.setHeightForWidth(self.label_24.sizePolicy().hasHeightForWidth()) + self.label_24.setSizePolicy(sizePolicy) + self.label_24.setMaximumSize(QSize(65, 16777215)) + + self.horizontalLayout_2.addWidget(self.label_24) + + self.spinBox_PSGPreCut = QSpinBox(self.verticalLayoutWidget_3) + self.spinBox_PSGPreCut.setObjectName(u"spinBox_PSGPreCut") + sizePolicy4.setHeightForWidth(self.spinBox_PSGPreCut.sizePolicy().hasHeightForWidth()) + self.spinBox_PSGPreCut.setSizePolicy(sizePolicy4) + self.spinBox_PSGPreCut.setMinimumSize(QSize(60, 0)) + self.spinBox_PSGPreCut.setMaximumSize(QSize(100, 16777215)) + self.spinBox_PSGPreCut.setToolTipDuration(2) + self.spinBox_PSGPreCut.setAlignment(Qt.AlignRight|Qt.AlignTrailing|Qt.AlignVCenter) + self.spinBox_PSGPreCut.setButtonSymbols(QAbstractSpinBox.NoButtons) + self.spinBox_PSGPreCut.setMinimum(0) + self.spinBox_PSGPreCut.setMaximum(300000) + self.spinBox_PSGPreCut.setValue(0) + + self.horizontalLayout_2.addWidget(self.spinBox_PSGPreCut) self.horizontalSpacer_2 = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum) - self.horizontalLayout_7.addItem(self.horizontalSpacer_2) + self.horizontalLayout_2.addItem(self.horizontalSpacer_2) + + self.label_26 = QLabel(self.verticalLayoutWidget_3) + self.label_26.setObjectName(u"label_26") + sizePolicy.setHeightForWidth(self.label_26.sizePolicy().hasHeightForWidth()) + self.label_26.setSizePolicy(sizePolicy) + self.label_26.setMaximumSize(QSize(65, 16777215)) + + self.horizontalLayout_2.addWidget(self.label_26) + + self.spinBox_XXPreCut = QSpinBox(self.verticalLayoutWidget_3) + self.spinBox_XXPreCut.setObjectName(u"spinBox_XXPreCut") + sizePolicy1.setHeightForWidth(self.spinBox_XXPreCut.sizePolicy().hasHeightForWidth()) + self.spinBox_XXPreCut.setSizePolicy(sizePolicy1) + self.spinBox_XXPreCut.setMinimumSize(QSize(60, 0)) + self.spinBox_XXPreCut.setMaximumSize(QSize(100, 16777215)) + self.spinBox_XXPreCut.setToolTipDuration(2) + self.spinBox_XXPreCut.setAlignment(Qt.AlignRight|Qt.AlignTrailing|Qt.AlignVCenter) + self.spinBox_XXPreCut.setButtonSymbols(QAbstractSpinBox.NoButtons) + self.spinBox_XXPreCut.setMinimum(0) + self.spinBox_XXPreCut.setMaximum(300000) + self.spinBox_XXPreCut.setValue(0) + + self.horizontalLayout_2.addWidget(self.spinBox_XXPreCut) + + + self.verticalLayout_3.addLayout(self.horizontalLayout_2) + + self.horizontalLayout_7 = QHBoxLayout() + self.horizontalLayout_7.setObjectName(u"horizontalLayout_7") + self.label_22 = QLabel(self.verticalLayoutWidget_3) + self.label_22.setObjectName(u"label_22") + sizePolicy.setHeightForWidth(self.label_22.sizePolicy().hasHeightForWidth()) + self.label_22.setSizePolicy(sizePolicy) + self.label_22.setMaximumSize(QSize(65, 16777215)) + + self.horizontalLayout_7.addWidget(self.label_22) + + self.spinBox_PSGPostCut = QSpinBox(self.verticalLayoutWidget_3) + self.spinBox_PSGPostCut.setObjectName(u"spinBox_PSGPostCut") + sizePolicy.setHeightForWidth(self.spinBox_PSGPostCut.sizePolicy().hasHeightForWidth()) + self.spinBox_PSGPostCut.setSizePolicy(sizePolicy) + self.spinBox_PSGPostCut.setMinimumSize(QSize(60, 0)) + self.spinBox_PSGPostCut.setMaximumSize(QSize(100, 16777215)) + self.spinBox_PSGPostCut.setToolTipDuration(2) + self.spinBox_PSGPostCut.setAlignment(Qt.AlignRight|Qt.AlignTrailing|Qt.AlignVCenter) + self.spinBox_PSGPostCut.setButtonSymbols(QAbstractSpinBox.NoButtons) + self.spinBox_PSGPostCut.setMinimum(0) + self.spinBox_PSGPostCut.setMaximum(300000) + self.spinBox_PSGPostCut.setValue(0) + + self.horizontalLayout_7.addWidget(self.spinBox_PSGPostCut) + + self.horizontalSpacer = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum) + + self.horizontalLayout_7.addItem(self.horizontalSpacer) self.label_23 = QLabel(self.verticalLayoutWidget_3) self.label_23.setObjectName(u"label_23") sizePolicy.setHeightForWidth(self.label_23.sizePolicy().hasHeightForWidth()) self.label_23.setSizePolicy(sizePolicy) - self.label_23.setMaximumSize(QSize(72, 16777215)) + self.label_23.setMaximumSize(QSize(65, 16777215)) self.horizontalLayout_7.addWidget(self.label_23) - self.spinBox_XXAft = QSpinBox(self.verticalLayoutWidget_3) - self.spinBox_XXAft.setObjectName(u"spinBox_XXAft") - sizePolicy1.setHeightForWidth(self.spinBox_XXAft.sizePolicy().hasHeightForWidth()) - self.spinBox_XXAft.setSizePolicy(sizePolicy1) - self.spinBox_XXAft.setMinimumSize(QSize(60, 0)) - self.spinBox_XXAft.setMaximumSize(QSize(60, 16777215)) - self.spinBox_XXAft.setAlignment(Qt.AlignRight|Qt.AlignTrailing|Qt.AlignVCenter) - self.spinBox_XXAft.setButtonSymbols(QAbstractSpinBox.NoButtons) - self.spinBox_XXAft.setMinimum(0) - self.spinBox_XXAft.setMaximum(1000) - self.spinBox_XXAft.setValue(0) + self.spinBox_XXPostCut = QSpinBox(self.verticalLayoutWidget_3) + self.spinBox_XXPostCut.setObjectName(u"spinBox_XXPostCut") + sizePolicy.setHeightForWidth(self.spinBox_XXPostCut.sizePolicy().hasHeightForWidth()) + self.spinBox_XXPostCut.setSizePolicy(sizePolicy) + self.spinBox_XXPostCut.setMinimumSize(QSize(60, 0)) + self.spinBox_XXPostCut.setMaximumSize(QSize(100, 16777215)) + self.spinBox_XXPostCut.setAlignment(Qt.AlignRight|Qt.AlignTrailing|Qt.AlignVCenter) + self.spinBox_XXPostCut.setButtonSymbols(QAbstractSpinBox.NoButtons) + self.spinBox_XXPostCut.setMinimum(0) + self.spinBox_XXPostCut.setMaximum(300000) + self.spinBox_XXPostCut.setValue(0) - self.horizontalLayout_7.addWidget(self.spinBox_XXAft) + self.horizontalLayout_7.addWidget(self.spinBox_XXPostCut) self.verticalLayout_3.addLayout(self.horizontalLayout_7) self.horizontalLayout_8 = QHBoxLayout() self.horizontalLayout_8.setObjectName(u"horizontalLayout_8") - self.pushButton_GetPos = QPushButton(self.verticalLayoutWidget_3) - self.pushButton_GetPos.setObjectName(u"pushButton_GetPos") - sizePolicy1.setHeightForWidth(self.pushButton_GetPos.sizePolicy().hasHeightForWidth()) - self.pushButton_GetPos.setSizePolicy(sizePolicy1) + self.horizontalSpacer_8 = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum) - self.horizontalLayout_8.addWidget(self.pushButton_GetPos) - - self.horizontalSpacer_3 = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum) - - self.horizontalLayout_8.addItem(self.horizontalSpacer_3) + self.horizontalLayout_8.addItem(self.horizontalSpacer_8) self.pushButton_CutOff = QPushButton(self.verticalLayoutWidget_3) self.pushButton_CutOff.setObjectName(u"pushButton_CutOff") @@ -409,6 +459,21 @@ class Ui_mainWindow(object): self.horizontalLayout_8.addWidget(self.pushButton_CutOff) + self.horizontalSpacer_3 = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum) + + self.horizontalLayout_8.addItem(self.horizontalSpacer_3) + + self.pushButton_GetPos = QPushButton(self.verticalLayoutWidget_3) + self.pushButton_GetPos.setObjectName(u"pushButton_GetPos") + sizePolicy1.setHeightForWidth(self.pushButton_GetPos.sizePolicy().hasHeightForWidth()) + self.pushButton_GetPos.setSizePolicy(sizePolicy1) + + self.horizontalLayout_8.addWidget(self.pushButton_GetPos) + + self.horizontalSpacer_9 = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum) + + self.horizontalLayout_8.addItem(self.horizontalSpacer_9) + self.verticalLayout_3.addLayout(self.horizontalLayout_8) @@ -419,7 +484,7 @@ class Ui_mainWindow(object): self.groupBox_4.setObjectName(u"groupBox_4") self.verticalLayoutWidget_4 = QWidget(self.groupBox_4) self.verticalLayoutWidget_4.setObjectName(u"verticalLayoutWidget_4") - self.verticalLayoutWidget_4.setGeometry(QRect(10, 20, 271, 91)) + self.verticalLayoutWidget_4.setGeometry(QRect(10, 20, 281, 91)) self.verticalLayout_4 = QVBoxLayout(self.verticalLayoutWidget_4) self.verticalLayout_4.setObjectName(u"verticalLayout_4") self.verticalLayout_4.setContentsMargins(0, 0, 0, 0) @@ -510,7 +575,7 @@ class Ui_mainWindow(object): self.groupBox_6.setObjectName(u"groupBox_6") self.verticalLayoutWidget_5 = QWidget(self.groupBox_6) self.verticalLayoutWidget_5.setObjectName(u"verticalLayoutWidget_5") - self.verticalLayoutWidget_5.setGeometry(QRect(10, 20, 271, 92)) + self.verticalLayoutWidget_5.setGeometry(QRect(10, 20, 281, 92)) self.verticalLayout_5 = QVBoxLayout(self.verticalLayoutWidget_5) self.verticalLayout_5.setObjectName(u"verticalLayout_5") self.verticalLayout_5.setContentsMargins(0, 0, 0, 0) @@ -612,23 +677,20 @@ class Ui_mainWindow(object): self.label_Info = QLabel(self.horizontalLayoutWidget) self.label_Info.setObjectName(u"label_Info") + self.label_Info.setMaximumSize(QSize(16777215, 20)) self.verticalLayout_6.addWidget(self.label_Info) - self.verticalSpacer = QSpacerItem(20, 40, QSizePolicy.Minimum, QSizePolicy.Expanding) - - self.verticalLayout_6.addItem(self.verticalSpacer) - self.verticalLayout.addLayout(self.verticalLayout_6) self.verticalLayout.setStretch(0, 3) self.verticalLayout.setStretch(1, 4) - self.verticalLayout.setStretch(2, 4) + self.verticalLayout.setStretch(2, 5) self.verticalLayout.setStretch(3, 4) self.verticalLayout.setStretch(4, 4) self.verticalLayout.setStretch(5, 2) - self.verticalLayout.setStretch(6, 3) + self.verticalLayout.setStretch(6, 2) self.horizontalLayout.addLayout(self.verticalLayout) @@ -641,26 +703,14 @@ class Ui_mainWindow(object): self.verticalLayout_9 = QVBoxLayout() self.verticalLayout_9.setObjectName(u"verticalLayout_9") - self.label_SPic = QLabel(self.horizontalLayoutWidget) - self.label_SPic.setObjectName(u"label_SPic") - self.label_SPic.setMaximumSize(QSize(16777215, 100)) - - self.verticalLayout_9.addWidget(self.label_SPic) - - self.line_2 = QFrame(self.horizontalLayoutWidget) - self.line_2.setObjectName(u"line_2") - self.line_2.setFrameShape(QFrame.HLine) - self.line_2.setFrameShadow(QFrame.Sunken) - - self.verticalLayout_9.addWidget(self.line_2) - self.label_Pic = QLabel(self.horizontalLayoutWidget) self.label_Pic.setObjectName(u"label_Pic") + self.label_Pic.setMinimumSize(QSize(860, 700)) + self.label_Pic.setMaximumSize(QSize(860, 700)) self.verticalLayout_9.addWidget(self.label_Pic) - self.verticalLayout_9.setStretch(0, 2) - self.verticalLayout_9.setStretch(2, 6) + self.verticalLayout_9.setStretch(0, 6) self.horizontalLayout.addLayout(self.verticalLayout_9) @@ -709,12 +759,42 @@ class Ui_mainWindow(object): self.checkBox_XXZScore.setText(QCoreApplication.translate("mainWindow", u"\u5fc3\u6653\u6807\u51c6\u5316", None)) self.pushButton_Standardize.setText(QCoreApplication.translate("mainWindow", u"\u5e94\u7528", None)) self.groupBox_5.setTitle(QCoreApplication.translate("mainWindow", u"\u622a\u65ad", None)) - self.label_24.setText(QCoreApplication.translate("mainWindow", u"PSG_PRE:", None)) - self.label_22.setText(QCoreApplication.translate("mainWindow", u"PSG_AFT", None)) - self.label_21.setText(QCoreApplication.translate("mainWindow", u"\u5fc3\u6653_PRE:", None)) - self.label_23.setText(QCoreApplication.translate("mainWindow", u"\u5fc3\u6653_AFT", None)) - self.pushButton_GetPos.setText(QCoreApplication.translate("mainWindow", u"\u83b7\u53d6\u5bf9\u9f50\u4f4d\u7f6e", None)) +#if QT_CONFIG(tooltip) + self.label_25.setToolTip("") +#endif // QT_CONFIG(tooltip) + self.label_25.setText(QCoreApplication.translate("mainWindow", u"PSG_\u8865\u96f6:", None)) +#if QT_CONFIG(tooltip) + self.spinBox_PSGPreA.setToolTip(QCoreApplication.translate("mainWindow", u"\u8d1f\u6570\u5219\u8865\u96f6", None)) +#endif // QT_CONFIG(tooltip) + self.spinBox_PSGPreA.setPrefix("") +#if QT_CONFIG(tooltip) + self.label_21.setToolTip("") +#endif // QT_CONFIG(tooltip) + self.label_21.setText(QCoreApplication.translate("mainWindow", u"\u5fc3\u6653_\u8865\u96f6:", None)) +#if QT_CONFIG(tooltip) + self.label_24.setToolTip("") +#endif // QT_CONFIG(tooltip) + self.label_24.setText(QCoreApplication.translate("mainWindow", u"PSG_Pre :", None)) +#if QT_CONFIG(tooltip) + self.spinBox_PSGPreCut.setToolTip(QCoreApplication.translate("mainWindow", u"\u8d1f\u6570\u5219\u8865\u96f6", None)) +#endif // QT_CONFIG(tooltip) + self.spinBox_PSGPreCut.setPrefix("") +#if QT_CONFIG(tooltip) + self.label_26.setToolTip("") +#endif // QT_CONFIG(tooltip) + self.label_26.setText(QCoreApplication.translate("mainWindow", u"\u5fc3\u6653_Pre:", None)) +#if QT_CONFIG(tooltip) + self.spinBox_XXPreCut.setToolTip(QCoreApplication.translate("mainWindow", u"\u8d1f\u6570\u5219\u8865\u96f6", None)) +#endif // QT_CONFIG(tooltip) + self.spinBox_XXPreCut.setPrefix("") + self.label_22.setText(QCoreApplication.translate("mainWindow", u"PSG_Post:", None)) +#if QT_CONFIG(tooltip) + self.spinBox_PSGPostCut.setToolTip(QCoreApplication.translate("mainWindow", u"\u8d1f\u6570\u5219\u8865\u96f6", None)) +#endif // QT_CONFIG(tooltip) + 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.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)) @@ -737,7 +817,6 @@ class Ui_mainWindow(object): self.pushButton_SaveInfo.setText(QCoreApplication.translate("mainWindow", u"\u4fdd\u5b58\u53c2\u6570", None)) self.pushButton_Exit.setText(QCoreApplication.translate("mainWindow", u"\u9000\u51fa", None)) self.label_Info.setText(QCoreApplication.translate("mainWindow", u"Info", None)) - self.label_SPic.setText(QCoreApplication.translate("mainWindow", u"TextLabel", None)) self.label_Pic.setText(QCoreApplication.translate("mainWindow", u"TextLabel", None)) self.menu.setTitle(QCoreApplication.translate("mainWindow", u"\u9ed8\u8ba4\u8bbe\u7f6e", None)) # retranslateUi diff --git a/ui/Mian.ui b/ui/Mian.ui index 5020de6..d192b4b 100644 --- a/ui/Mian.ui +++ b/ui/Mian.ui @@ -24,8 +24,8 @@ - 1920 - 1080 + 1200 + 800 @@ -44,12 +44,12 @@ 10 10 1181 - 741 + 751 - + @@ -60,8 +60,8 @@ 10 20 - 274 - 71 + 281 + 51 @@ -492,15 +492,15 @@ 10 20 - 271 - 91 + 281 + 112 - + 0 @@ -513,13 +513,16 @@ 16777215 + + + - PSG_PRE: + PSG_补零: - + 0 @@ -538,17 +541,26 @@ 16777215 + + 负数则补零 + + + 2 + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter QAbstractSpinBox::NoButtons + + + 0 - 1000 + 300000 0 @@ -556,7 +568,7 @@ - + Qt::Horizontal @@ -568,66 +580,6 @@ - - - - - 0 - 0 - - - - - 72 - 16777215 - - - - PSG_AFT - - - - - - - - 0 - 0 - - - - - 60 - 0 - - - - - 100 - 16777215 - - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - QAbstractSpinBox::NoButtons - - - 0 - - - 1000 - - - 0 - - - - - - - @@ -642,13 +594,16 @@ 16777215 + + + - 心晓_PRE: + 心晓_补零: - + 0 @@ -677,8 +632,80 @@ 0 + 300000 + + 0 + + + + + + + + + + + 0 + 0 + + + + + 65 + 16777215 + + + + + + + PSG_Pre : + + + + + + + + 0 + 0 + + + + + 60 + 0 + + + + + 100 + 16777215 + + + + 负数则补零 + + + 2 + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + QAbstractSpinBox::NoButtons + + + + + + 0 + + + 300000 + 0 @@ -697,6 +724,156 @@ + + + + + 0 + 0 + + + + + 65 + 16777215 + + + + + + + 心晓_Pre: + + + + + + + + 0 + 0 + + + + + 60 + 0 + + + + + 100 + 16777215 + + + + 负数则补零 + + + 2 + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + QAbstractSpinBox::NoButtons + + + + + + 0 + + + 300000 + + + 0 + + + + + + + + + + + + 0 + 0 + + + + + 65 + 16777215 + + + + PSG_Post: + + + + + + + + 0 + 0 + + + + + 60 + 0 + + + + + 100 + 16777215 + + + + 负数则补零 + + + 2 + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + QAbstractSpinBox::NoButtons + + + + + + 0 + + + 300000 + + + 0 + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + @@ -707,19 +884,19 @@ - 72 + 65 16777215 - 心晓_AFT + 心晓_Post: - + - + 0 0 @@ -732,7 +909,7 @@ - 60 + 100 16777215 @@ -746,7 +923,7 @@ 0 - 1000 + 300000 0 @@ -758,20 +935,7 @@ - - - - 0 - 0 - - - - 获取对齐位置 - - - - - + Qt::Horizontal @@ -808,6 +972,45 @@ + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + 0 + 0 + + + + 获取对齐位置 + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + @@ -824,7 +1027,7 @@ 10 20 - 271 + 281 91 @@ -973,7 +1176,7 @@ 10 20 - 271 + 281 92 @@ -1150,24 +1353,17 @@ + + + 16777215 + 20 + + Info - - - - Qt::Vertical - - - - 20 - 40 - - - - @@ -1180,29 +1376,21 @@ - - - - - - 16777215 - 100 - - - - TextLabel - - - - - - - Qt::Horizontal - - - + + + + 860 + 700 + + + + + 860 + 700 + + TextLabel