所有功能已完善
This commit is contained in:
parent
b8773a158d
commit
713318e184
1955
Deep_Model/Unet.py
Normal file
1955
Deep_Model/Unet.py
Normal file
File diff suppressed because it is too large
Load Diff
1
Deep_Model/__init__.py
Normal file
1
Deep_Model/__init__.py
Normal file
@ -0,0 +1 @@
|
||||
from .Unet import Unet,ResUNet,DUNet,LSTM_UNet,R2U_Net,AttU_Net,R2AttU_Net,Unet_lstm,deep_Unet,Fivelayer_Unet,Fourlayer_LUnet,Sixlayer_Unet,Threelayer_Unet,Sixlayer_Lstm_Unet,Fivelayer_Lstm_Unet,Fourlayer_Lstm_Unet
|
699
MainWindow.py
699
MainWindow.py
@ -1,699 +0,0 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
# Form implementation generated from reading ui file 'MainWindow.ui'
|
||||
#
|
||||
# Created by: PyQt5 UI code generator 5.15.9
|
||||
#
|
||||
# WARNING: Any manual changes made to this file will be lost when pyuic5 is
|
||||
# run again. Do not edit this file unless you know what you are doing.
|
||||
|
||||
|
||||
from PyQt5 import QtCore, QtGui, QtWidgets
|
||||
|
||||
|
||||
class Ui_MainWindow(object):
|
||||
def setupUi(self, MainWindow):
|
||||
MainWindow.setObjectName("MainWindow")
|
||||
MainWindow.resize(1920, 1187)
|
||||
self.centralwidget = QtWidgets.QWidget(MainWindow)
|
||||
self.centralwidget.setObjectName("centralwidget")
|
||||
self.gridLayout = QtWidgets.QGridLayout(self.centralwidget)
|
||||
self.gridLayout.setObjectName("gridLayout")
|
||||
self.gridLayout_left = QtWidgets.QGridLayout()
|
||||
self.gridLayout_left.setObjectName("gridLayout_left")
|
||||
self.groupBox_func_select = QtWidgets.QGroupBox(self.centralwidget)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("黑体")
|
||||
font.setPointSize(10)
|
||||
self.groupBox_func_select.setFont(font)
|
||||
self.groupBox_func_select.setObjectName("groupBox_func_select")
|
||||
self.gridLayout_2 = QtWidgets.QGridLayout(self.groupBox_func_select)
|
||||
self.gridLayout_2.setObjectName("gridLayout_2")
|
||||
spacerItem = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
|
||||
self.gridLayout_2.addItem(spacerItem, 6, 1, 1, 2)
|
||||
spacerItem1 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
|
||||
self.gridLayout_2.addItem(spacerItem1, 0, 3, 9, 1)
|
||||
self.pushButton_detect_Rpeaks = QtWidgets.QPushButton(self.groupBox_func_select)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Minimum)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.pushButton_detect_Rpeaks.sizePolicy().hasHeightForWidth())
|
||||
self.pushButton_detect_Rpeaks.setSizePolicy(sizePolicy)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("黑体")
|
||||
font.setPointSize(24)
|
||||
self.pushButton_detect_Rpeaks.setFont(font)
|
||||
self.pushButton_detect_Rpeaks.setObjectName("pushButton_detect_Rpeaks")
|
||||
self.gridLayout_2.addWidget(self.pushButton_detect_Rpeaks, 5, 1, 1, 2)
|
||||
spacerItem2 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
|
||||
self.gridLayout_2.addItem(spacerItem2, 2, 1, 1, 2)
|
||||
spacerItem3 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
|
||||
self.gridLayout_2.addItem(spacerItem3, 4, 1, 1, 2)
|
||||
spacerItem4 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
|
||||
self.gridLayout_2.addItem(spacerItem4, 0, 1, 1, 2)
|
||||
self.pushButton_detect_Jpeaks = QtWidgets.QPushButton(self.groupBox_func_select)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Minimum)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.pushButton_detect_Jpeaks.sizePolicy().hasHeightForWidth())
|
||||
self.pushButton_detect_Jpeaks.setSizePolicy(sizePolicy)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("黑体")
|
||||
font.setPointSize(24)
|
||||
self.pushButton_detect_Jpeaks.setFont(font)
|
||||
self.pushButton_detect_Jpeaks.setObjectName("pushButton_detect_Jpeaks")
|
||||
self.gridLayout_2.addWidget(self.pushButton_detect_Jpeaks, 7, 1, 1, 2)
|
||||
self.pushButton_rootpath_open = QtWidgets.QPushButton(self.groupBox_func_select)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("黑体")
|
||||
font.setPointSize(14)
|
||||
self.pushButton_rootpath_open.setFont(font)
|
||||
self.pushButton_rootpath_open.setObjectName("pushButton_rootpath_open")
|
||||
self.gridLayout_2.addWidget(self.pushButton_rootpath_open, 1, 2, 1, 1)
|
||||
self.pushButton_resample1000Hz = QtWidgets.QPushButton(self.groupBox_func_select)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Minimum)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.pushButton_resample1000Hz.sizePolicy().hasHeightForWidth())
|
||||
self.pushButton_resample1000Hz.setSizePolicy(sizePolicy)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("黑体")
|
||||
font.setPointSize(24)
|
||||
self.pushButton_resample1000Hz.setFont(font)
|
||||
self.pushButton_resample1000Hz.setObjectName("pushButton_resample1000Hz")
|
||||
self.gridLayout_2.addWidget(self.pushButton_resample1000Hz, 3, 1, 1, 2)
|
||||
self.lineEdit_rootpath = QtWidgets.QLineEdit(self.groupBox_func_select)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("Times New Roman")
|
||||
font.setPointSize(14)
|
||||
self.lineEdit_rootpath.setFont(font)
|
||||
self.lineEdit_rootpath.setObjectName("lineEdit_rootpath")
|
||||
self.gridLayout_2.addWidget(self.lineEdit_rootpath, 1, 1, 1, 1)
|
||||
spacerItem5 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
|
||||
self.gridLayout_2.addItem(spacerItem5, 0, 0, 9, 1)
|
||||
spacerItem6 = QtWidgets.QSpacerItem(518, 57, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
|
||||
self.gridLayout_2.addItem(spacerItem6, 8, 1, 1, 2)
|
||||
self.gridLayout_2.setColumnStretch(0, 2)
|
||||
self.gridLayout_2.setRowStretch(0, 2)
|
||||
self.gridLayout_2.setRowStretch(1, 2)
|
||||
self.gridLayout_2.setRowStretch(2, 2)
|
||||
self.gridLayout_2.setRowStretch(3, 3)
|
||||
self.gridLayout_2.setRowStretch(4, 2)
|
||||
self.gridLayout_2.setRowStretch(5, 3)
|
||||
self.gridLayout_2.setRowStretch(6, 2)
|
||||
self.gridLayout_2.setRowStretch(7, 3)
|
||||
self.gridLayout_2.setRowStretch(8, 2)
|
||||
self.gridLayout_left.addWidget(self.groupBox_func_select, 0, 1, 1, 1)
|
||||
self.gridLayout.addLayout(self.gridLayout_left, 0, 0, 1, 1)
|
||||
self.verticalLayout_right = QtWidgets.QVBoxLayout()
|
||||
self.verticalLayout_right.setObjectName("verticalLayout_right")
|
||||
self.groupBox_plot = QtWidgets.QGroupBox(self.centralwidget)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("黑体")
|
||||
font.setPointSize(10)
|
||||
self.groupBox_plot.setFont(font)
|
||||
self.groupBox_plot.setObjectName("groupBox_plot")
|
||||
self.gridLayout_3 = QtWidgets.QGridLayout(self.groupBox_plot)
|
||||
self.gridLayout_3.setObjectName("gridLayout_3")
|
||||
self.verticalLayout_canvas = QtWidgets.QVBoxLayout()
|
||||
self.verticalLayout_canvas.setObjectName("verticalLayout_canvas")
|
||||
self.gridLayout_3.addLayout(self.verticalLayout_canvas, 0, 0, 1, 1)
|
||||
self.verticalLayout_right.addWidget(self.groupBox_plot)
|
||||
self.gridLayout.addLayout(self.verticalLayout_right, 0, 3, 1, 1)
|
||||
self.verticalLayout_middle = QtWidgets.QVBoxLayout()
|
||||
self.verticalLayout_middle.setObjectName("verticalLayout_middle")
|
||||
self.groupBox_resample1000Hz = QtWidgets.QGroupBox(self.centralwidget)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.groupBox_resample1000Hz.sizePolicy().hasHeightForWidth())
|
||||
self.groupBox_resample1000Hz.setSizePolicy(sizePolicy)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("黑体")
|
||||
font.setPointSize(10)
|
||||
self.groupBox_resample1000Hz.setFont(font)
|
||||
self.groupBox_resample1000Hz.setObjectName("groupBox_resample1000Hz")
|
||||
self.gridLayout_64 = QtWidgets.QGridLayout(self.groupBox_resample1000Hz)
|
||||
self.gridLayout_64.setObjectName("gridLayout_64")
|
||||
self.pushButton_resample1000Hz_view = QtWidgets.QPushButton(self.groupBox_resample1000Hz)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Preferred)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.pushButton_resample1000Hz_view.sizePolicy().hasHeightForWidth())
|
||||
self.pushButton_resample1000Hz_view.setSizePolicy(sizePolicy)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("黑体")
|
||||
font.setPointSize(14)
|
||||
self.pushButton_resample1000Hz_view.setFont(font)
|
||||
self.pushButton_resample1000Hz_view.setObjectName("pushButton_resample1000Hz_view")
|
||||
self.gridLayout_64.addWidget(self.pushButton_resample1000Hz_view, 3, 0, 1, 1)
|
||||
self.groupBox_resample1000Hz_inputFile_check = QtWidgets.QGroupBox(self.groupBox_resample1000Hz)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.groupBox_resample1000Hz_inputFile_check.sizePolicy().hasHeightForWidth())
|
||||
self.groupBox_resample1000Hz_inputFile_check.setSizePolicy(sizePolicy)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("黑体")
|
||||
font.setPointSize(10)
|
||||
self.groupBox_resample1000Hz_inputFile_check.setFont(font)
|
||||
self.groupBox_resample1000Hz_inputFile_check.setObjectName("groupBox_resample1000Hz_inputFile_check")
|
||||
self.gridLayout_70 = QtWidgets.QGridLayout(self.groupBox_resample1000Hz_inputFile_check)
|
||||
self.gridLayout_70.setObjectName("gridLayout_70")
|
||||
self.lineEdit_resample1000Hz_DSbcg_sig_path = QtWidgets.QLineEdit(self.groupBox_resample1000Hz_inputFile_check)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("黑体")
|
||||
font.setPointSize(10)
|
||||
self.lineEdit_resample1000Hz_DSbcg_sig_path.setFont(font)
|
||||
self.lineEdit_resample1000Hz_DSbcg_sig_path.setObjectName("lineEdit_resample1000Hz_DSbcg_sig_path")
|
||||
self.gridLayout_70.addWidget(self.lineEdit_resample1000Hz_DSbcg_sig_path, 3, 0, 1, 1)
|
||||
self.label_4 = QtWidgets.QLabel(self.groupBox_resample1000Hz_inputFile_check)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("黑体")
|
||||
font.setPointSize(14)
|
||||
self.label_4.setFont(font)
|
||||
self.label_4.setObjectName("label_4")
|
||||
self.gridLayout_70.addWidget(self.label_4, 0, 0, 1, 1)
|
||||
self.label_6 = QtWidgets.QLabel(self.groupBox_resample1000Hz_inputFile_check)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("黑体")
|
||||
font.setPointSize(14)
|
||||
self.label_6.setFont(font)
|
||||
self.label_6.setObjectName("label_6")
|
||||
self.gridLayout_70.addWidget(self.label_6, 4, 0, 1, 1)
|
||||
self.lineEdit_resample1000Hz_raw_org_path = QtWidgets.QLineEdit(self.groupBox_resample1000Hz_inputFile_check)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("黑体")
|
||||
font.setPointSize(10)
|
||||
self.lineEdit_resample1000Hz_raw_org_path.setFont(font)
|
||||
self.lineEdit_resample1000Hz_raw_org_path.setObjectName("lineEdit_resample1000Hz_raw_org_path")
|
||||
self.gridLayout_70.addWidget(self.lineEdit_resample1000Hz_raw_org_path, 1, 0, 1, 1)
|
||||
self.label_5 = QtWidgets.QLabel(self.groupBox_resample1000Hz_inputFile_check)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("黑体")
|
||||
font.setPointSize(14)
|
||||
self.label_5.setFont(font)
|
||||
self.label_5.setObjectName("label_5")
|
||||
self.gridLayout_70.addWidget(self.label_5, 2, 0, 1, 1)
|
||||
self.lineEdit_resample1000Hz_save_path = QtWidgets.QLineEdit(self.groupBox_resample1000Hz_inputFile_check)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("黑体")
|
||||
font.setPointSize(10)
|
||||
self.lineEdit_resample1000Hz_save_path.setFont(font)
|
||||
self.lineEdit_resample1000Hz_save_path.setObjectName("lineEdit_resample1000Hz_save_path")
|
||||
self.gridLayout_70.addWidget(self.lineEdit_resample1000Hz_save_path, 5, 0, 1, 1)
|
||||
self.gridLayout_64.addWidget(self.groupBox_resample1000Hz_inputFile_check, 0, 0, 1, 2)
|
||||
self.pushButton_resample1000Hz_save = QtWidgets.QPushButton(self.groupBox_resample1000Hz)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Preferred)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.pushButton_resample1000Hz_save.sizePolicy().hasHeightForWidth())
|
||||
self.pushButton_resample1000Hz_save.setSizePolicy(sizePolicy)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("黑体")
|
||||
font.setPointSize(14)
|
||||
self.pushButton_resample1000Hz_save.setFont(font)
|
||||
self.pushButton_resample1000Hz_save.setObjectName("pushButton_resample1000Hz_save")
|
||||
self.gridLayout_64.addWidget(self.pushButton_resample1000Hz_save, 3, 1, 1, 1)
|
||||
self.groupBox_resample1000Hz_input_args = QtWidgets.QGroupBox(self.groupBox_resample1000Hz)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.groupBox_resample1000Hz_input_args.sizePolicy().hasHeightForWidth())
|
||||
self.groupBox_resample1000Hz_input_args.setSizePolicy(sizePolicy)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("黑体")
|
||||
font.setPointSize(10)
|
||||
self.groupBox_resample1000Hz_input_args.setFont(font)
|
||||
self.groupBox_resample1000Hz_input_args.setObjectName("groupBox_resample1000Hz_input_args")
|
||||
self.gridLayout_71 = QtWidgets.QGridLayout(self.groupBox_resample1000Hz_input_args)
|
||||
self.gridLayout_71.setObjectName("gridLayout_71")
|
||||
self.lineEdit_resample1000Hz_original_sampling_rate = QtWidgets.QLineEdit(self.groupBox_resample1000Hz_input_args)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("黑体")
|
||||
font.setPointSize(14)
|
||||
self.lineEdit_resample1000Hz_original_sampling_rate.setFont(font)
|
||||
self.lineEdit_resample1000Hz_original_sampling_rate.setPlaceholderText("")
|
||||
self.lineEdit_resample1000Hz_original_sampling_rate.setObjectName("lineEdit_resample1000Hz_original_sampling_rate")
|
||||
self.gridLayout_71.addWidget(self.lineEdit_resample1000Hz_original_sampling_rate, 0, 1, 1, 1)
|
||||
self.label_3 = QtWidgets.QLabel(self.groupBox_resample1000Hz_input_args)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("黑体")
|
||||
font.setPointSize(14)
|
||||
self.label_3.setFont(font)
|
||||
self.label_3.setObjectName("label_3")
|
||||
self.gridLayout_71.addWidget(self.label_3, 1, 0, 1, 1)
|
||||
self.lineEdit_resample1000Hz_target_sampling_rate = QtWidgets.QLineEdit(self.groupBox_resample1000Hz_input_args)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("黑体")
|
||||
font.setPointSize(14)
|
||||
self.lineEdit_resample1000Hz_target_sampling_rate.setFont(font)
|
||||
self.lineEdit_resample1000Hz_target_sampling_rate.setPlaceholderText("")
|
||||
self.lineEdit_resample1000Hz_target_sampling_rate.setObjectName("lineEdit_resample1000Hz_target_sampling_rate")
|
||||
self.gridLayout_71.addWidget(self.lineEdit_resample1000Hz_target_sampling_rate, 1, 1, 1, 1)
|
||||
self.label_2 = QtWidgets.QLabel(self.groupBox_resample1000Hz_input_args)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("黑体")
|
||||
font.setPointSize(14)
|
||||
self.label_2.setFont(font)
|
||||
self.label_2.setObjectName("label_2")
|
||||
self.gridLayout_71.addWidget(self.label_2, 0, 0, 1, 1)
|
||||
self.label = QtWidgets.QLabel(self.groupBox_resample1000Hz_input_args)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("黑体")
|
||||
font.setPointSize(14)
|
||||
self.label.setFont(font)
|
||||
self.label.setObjectName("label")
|
||||
self.gridLayout_71.addWidget(self.label, 2, 0, 1, 1)
|
||||
self.lineEdit_resample1000Hz_cut_second = QtWidgets.QLineEdit(self.groupBox_resample1000Hz_input_args)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("黑体")
|
||||
font.setPointSize(14)
|
||||
self.lineEdit_resample1000Hz_cut_second.setFont(font)
|
||||
self.lineEdit_resample1000Hz_cut_second.setPlaceholderText("")
|
||||
self.lineEdit_resample1000Hz_cut_second.setObjectName("lineEdit_resample1000Hz_cut_second")
|
||||
self.gridLayout_71.addWidget(self.lineEdit_resample1000Hz_cut_second, 2, 1, 1, 1)
|
||||
self.gridLayout_64.addWidget(self.groupBox_resample1000Hz_input_args, 1, 0, 1, 2)
|
||||
self.gridLayout_64.setColumnStretch(0, 1)
|
||||
self.gridLayout_64.setColumnStretch(1, 1)
|
||||
self.gridLayout_64.setRowStretch(0, 5)
|
||||
self.gridLayout_64.setRowStretch(1, 4)
|
||||
self.gridLayout_64.setRowStretch(2, 5)
|
||||
self.gridLayout_64.setRowStretch(3, 2)
|
||||
self.pushButton_resample1000Hz_view.raise_()
|
||||
self.pushButton_resample1000Hz_save.raise_()
|
||||
self.groupBox_resample1000Hz_input_args.raise_()
|
||||
self.groupBox_resample1000Hz_inputFile_check.raise_()
|
||||
self.verticalLayout_middle.addWidget(self.groupBox_resample1000Hz)
|
||||
self.groupBox_detect_Rpeaks = QtWidgets.QGroupBox(self.centralwidget)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.groupBox_detect_Rpeaks.sizePolicy().hasHeightForWidth())
|
||||
self.groupBox_detect_Rpeaks.setSizePolicy(sizePolicy)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("黑体")
|
||||
font.setPointSize(10)
|
||||
self.groupBox_detect_Rpeaks.setFont(font)
|
||||
self.groupBox_detect_Rpeaks.setObjectName("groupBox_detect_Rpeaks")
|
||||
self.gridLayout_67 = QtWidgets.QGridLayout(self.groupBox_detect_Rpeaks)
|
||||
self.gridLayout_67.setObjectName("gridLayout_67")
|
||||
self.groupBox_detect_Rpeaks_inputFile_check = QtWidgets.QGroupBox(self.groupBox_detect_Rpeaks)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.groupBox_detect_Rpeaks_inputFile_check.sizePolicy().hasHeightForWidth())
|
||||
self.groupBox_detect_Rpeaks_inputFile_check.setSizePolicy(sizePolicy)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("黑体")
|
||||
font.setPointSize(10)
|
||||
self.groupBox_detect_Rpeaks_inputFile_check.setFont(font)
|
||||
self.groupBox_detect_Rpeaks_inputFile_check.setObjectName("groupBox_detect_Rpeaks_inputFile_check")
|
||||
self.gridLayout_72 = QtWidgets.QGridLayout(self.groupBox_detect_Rpeaks_inputFile_check)
|
||||
self.gridLayout_72.setObjectName("gridLayout_72")
|
||||
self.lineEdit_detect_Rpeaks_filter_ecg_path = QtWidgets.QLineEdit(self.groupBox_detect_Rpeaks_inputFile_check)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("黑体")
|
||||
font.setPointSize(10)
|
||||
self.lineEdit_detect_Rpeaks_filter_ecg_path.setFont(font)
|
||||
self.lineEdit_detect_Rpeaks_filter_ecg_path.setObjectName("lineEdit_detect_Rpeaks_filter_ecg_path")
|
||||
self.gridLayout_72.addWidget(self.lineEdit_detect_Rpeaks_filter_ecg_path, 1, 0, 1, 1)
|
||||
self.label_7 = QtWidgets.QLabel(self.groupBox_detect_Rpeaks_inputFile_check)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("黑体")
|
||||
font.setPointSize(14)
|
||||
self.label_7.setFont(font)
|
||||
self.label_7.setObjectName("label_7")
|
||||
self.gridLayout_72.addWidget(self.label_7, 0, 0, 1, 1)
|
||||
self.textBrowser = QtWidgets.QTextBrowser(self.groupBox_detect_Rpeaks_inputFile_check)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Maximum)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.textBrowser.sizePolicy().hasHeightForWidth())
|
||||
self.textBrowser.setSizePolicy(sizePolicy)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("黑体")
|
||||
font.setPointSize(12)
|
||||
self.textBrowser.setFont(font)
|
||||
self.textBrowser.setStyleSheet("background-color: rgb(85, 255, 255);")
|
||||
self.textBrowser.setObjectName("textBrowser")
|
||||
self.gridLayout_72.addWidget(self.textBrowser, 4, 0, 1, 1)
|
||||
self.label_8 = QtWidgets.QLabel(self.groupBox_detect_Rpeaks_inputFile_check)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("黑体")
|
||||
font.setPointSize(14)
|
||||
self.label_8.setFont(font)
|
||||
self.label_8.setObjectName("label_8")
|
||||
self.gridLayout_72.addWidget(self.label_8, 2, 0, 1, 1)
|
||||
self.lineEdit_detect_Rpeaks_save_path = QtWidgets.QLineEdit(self.groupBox_detect_Rpeaks_inputFile_check)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("黑体")
|
||||
font.setPointSize(10)
|
||||
self.lineEdit_detect_Rpeaks_save_path.setFont(font)
|
||||
self.lineEdit_detect_Rpeaks_save_path.setObjectName("lineEdit_detect_Rpeaks_save_path")
|
||||
self.gridLayout_72.addWidget(self.lineEdit_detect_Rpeaks_save_path, 3, 0, 1, 1)
|
||||
self.gridLayout_72.setRowStretch(0, 1)
|
||||
self.gridLayout_72.setRowStretch(1, 1)
|
||||
self.gridLayout_72.setRowStretch(2, 1)
|
||||
self.gridLayout_72.setRowStretch(3, 1)
|
||||
self.gridLayout_72.setRowStretch(4, 2)
|
||||
self.gridLayout_67.addWidget(self.groupBox_detect_Rpeaks_inputFile_check, 0, 0, 1, 2)
|
||||
self.pushButton_detect_Rpeaks_save = QtWidgets.QPushButton(self.groupBox_detect_Rpeaks)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Preferred)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.pushButton_detect_Rpeaks_save.sizePolicy().hasHeightForWidth())
|
||||
self.pushButton_detect_Rpeaks_save.setSizePolicy(sizePolicy)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("黑体")
|
||||
font.setPointSize(14)
|
||||
self.pushButton_detect_Rpeaks_save.setFont(font)
|
||||
self.pushButton_detect_Rpeaks_save.setObjectName("pushButton_detect_Rpeaks_save")
|
||||
self.gridLayout_67.addWidget(self.pushButton_detect_Rpeaks_save, 3, 1, 1, 1)
|
||||
self.pushButton_detect_Rpeaks_view = QtWidgets.QPushButton(self.groupBox_detect_Rpeaks)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Preferred)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.pushButton_detect_Rpeaks_view.sizePolicy().hasHeightForWidth())
|
||||
self.pushButton_detect_Rpeaks_view.setSizePolicy(sizePolicy)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("黑体")
|
||||
font.setPointSize(14)
|
||||
self.pushButton_detect_Rpeaks_view.setFont(font)
|
||||
self.pushButton_detect_Rpeaks_view.setObjectName("pushButton_detect_Rpeaks_view")
|
||||
self.gridLayout_67.addWidget(self.pushButton_detect_Rpeaks_view, 3, 0, 1, 1)
|
||||
self.groupBox_detect_Rpeaks_input_args = QtWidgets.QGroupBox(self.groupBox_detect_Rpeaks)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.groupBox_detect_Rpeaks_input_args.sizePolicy().hasHeightForWidth())
|
||||
self.groupBox_detect_Rpeaks_input_args.setSizePolicy(sizePolicy)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("黑体")
|
||||
font.setPointSize(10)
|
||||
self.groupBox_detect_Rpeaks_input_args.setFont(font)
|
||||
self.groupBox_detect_Rpeaks_input_args.setObjectName("groupBox_detect_Rpeaks_input_args")
|
||||
self.gridLayout_73 = QtWidgets.QGridLayout(self.groupBox_detect_Rpeaks_input_args)
|
||||
self.gridLayout_73.setObjectName("gridLayout_73")
|
||||
self.radioButton_detector_method_Wt = QtWidgets.QRadioButton(self.groupBox_detect_Rpeaks_input_args)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("黑体")
|
||||
font.setPointSize(14)
|
||||
self.radioButton_detector_method_Wt.setFont(font)
|
||||
self.radioButton_detector_method_Wt.setObjectName("radioButton_detector_method_Wt")
|
||||
self.gridLayout_73.addWidget(self.radioButton_detector_method_Wt, 6, 0, 1, 1)
|
||||
self.label_9 = QtWidgets.QLabel(self.groupBox_detect_Rpeaks_input_args)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("黑体")
|
||||
font.setPointSize(14)
|
||||
self.label_9.setFont(font)
|
||||
self.label_9.setObjectName("label_9")
|
||||
self.gridLayout_73.addWidget(self.label_9, 0, 0, 1, 1)
|
||||
self.lineEdit_detect_Rpeaks_bandpass_low = QtWidgets.QLineEdit(self.groupBox_detect_Rpeaks_input_args)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("黑体")
|
||||
font.setPointSize(14)
|
||||
self.lineEdit_detect_Rpeaks_bandpass_low.setFont(font)
|
||||
self.lineEdit_detect_Rpeaks_bandpass_low.setPlaceholderText("")
|
||||
self.lineEdit_detect_Rpeaks_bandpass_low.setObjectName("lineEdit_detect_Rpeaks_bandpass_low")
|
||||
self.gridLayout_73.addWidget(self.lineEdit_detect_Rpeaks_bandpass_low, 2, 1, 1, 1)
|
||||
self.radioButton_detector_method_ta = QtWidgets.QRadioButton(self.groupBox_detect_Rpeaks_input_args)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("黑体")
|
||||
font.setPointSize(14)
|
||||
self.radioButton_detector_method_ta.setFont(font)
|
||||
self.radioButton_detector_method_ta.setObjectName("radioButton_detector_method_ta")
|
||||
self.gridLayout_73.addWidget(self.radioButton_detector_method_ta, 4, 1, 1, 3)
|
||||
self.label_11 = QtWidgets.QLabel(self.groupBox_detect_Rpeaks_input_args)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("黑体")
|
||||
font.setPointSize(14)
|
||||
self.label_11.setFont(font)
|
||||
self.label_11.setObjectName("label_11")
|
||||
self.gridLayout_73.addWidget(self.label_11, 1, 0, 1, 1)
|
||||
self.radioButton_detector_method_Hamilton = QtWidgets.QRadioButton(self.groupBox_detect_Rpeaks_input_args)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("黑体")
|
||||
font.setPointSize(14)
|
||||
self.radioButton_detector_method_Hamilton.setFont(font)
|
||||
self.radioButton_detector_method_Hamilton.setObjectName("radioButton_detector_method_Hamilton")
|
||||
self.gridLayout_73.addWidget(self.radioButton_detector_method_Hamilton, 6, 1, 1, 3)
|
||||
self.lineEdit_detect_Rpeaks_sampling_rate = QtWidgets.QLineEdit(self.groupBox_detect_Rpeaks_input_args)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("黑体")
|
||||
font.setPointSize(14)
|
||||
self.lineEdit_detect_Rpeaks_sampling_rate.setFont(font)
|
||||
self.lineEdit_detect_Rpeaks_sampling_rate.setPlaceholderText("")
|
||||
self.lineEdit_detect_Rpeaks_sampling_rate.setObjectName("lineEdit_detect_Rpeaks_sampling_rate")
|
||||
self.gridLayout_73.addWidget(self.lineEdit_detect_Rpeaks_sampling_rate, 0, 1, 1, 3)
|
||||
self.label_12 = QtWidgets.QLabel(self.groupBox_detect_Rpeaks_input_args)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("黑体")
|
||||
font.setPointSize(14)
|
||||
self.label_12.setFont(font)
|
||||
self.label_12.setObjectName("label_12")
|
||||
self.gridLayout_73.addWidget(self.label_12, 2, 0, 1, 1)
|
||||
self.radioButton_detector_method_pt = QtWidgets.QRadioButton(self.groupBox_detect_Rpeaks_input_args)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("黑体")
|
||||
font.setPointSize(14)
|
||||
self.radioButton_detector_method_pt.setFont(font)
|
||||
self.radioButton_detector_method_pt.setObjectName("radioButton_detector_method_pt")
|
||||
self.gridLayout_73.addWidget(self.radioButton_detector_method_pt, 4, 0, 1, 1)
|
||||
self.radioButton_detector_method_Engzee = QtWidgets.QRadioButton(self.groupBox_detect_Rpeaks_input_args)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("黑体")
|
||||
font.setPointSize(14)
|
||||
self.radioButton_detector_method_Engzee.setFont(font)
|
||||
self.radioButton_detector_method_Engzee.setObjectName("radioButton_detector_method_Engzee")
|
||||
self.gridLayout_73.addWidget(self.radioButton_detector_method_Engzee, 8, 0, 1, 1)
|
||||
self.lineEdit_detect_Rpeaks_bandpass_high = QtWidgets.QLineEdit(self.groupBox_detect_Rpeaks_input_args)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("黑体")
|
||||
font.setPointSize(14)
|
||||
self.lineEdit_detect_Rpeaks_bandpass_high.setFont(font)
|
||||
self.lineEdit_detect_Rpeaks_bandpass_high.setPlaceholderText("")
|
||||
self.lineEdit_detect_Rpeaks_bandpass_high.setObjectName("lineEdit_detect_Rpeaks_bandpass_high")
|
||||
self.gridLayout_73.addWidget(self.lineEdit_detect_Rpeaks_bandpass_high, 2, 3, 1, 1)
|
||||
self.lineEdit_detect_Rpeaks_peaks_value = QtWidgets.QLineEdit(self.groupBox_detect_Rpeaks_input_args)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("黑体")
|
||||
font.setPointSize(14)
|
||||
self.lineEdit_detect_Rpeaks_peaks_value.setFont(font)
|
||||
self.lineEdit_detect_Rpeaks_peaks_value.setPlaceholderText("")
|
||||
self.lineEdit_detect_Rpeaks_peaks_value.setObjectName("lineEdit_detect_Rpeaks_peaks_value")
|
||||
self.gridLayout_73.addWidget(self.lineEdit_detect_Rpeaks_peaks_value, 1, 1, 1, 3)
|
||||
self.label_13 = QtWidgets.QLabel(self.groupBox_detect_Rpeaks_input_args)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("黑体")
|
||||
font.setPointSize(14)
|
||||
self.label_13.setFont(font)
|
||||
self.label_13.setObjectName("label_13")
|
||||
self.gridLayout_73.addWidget(self.label_13, 2, 2, 1, 1)
|
||||
self.label_10 = QtWidgets.QLabel(self.groupBox_detect_Rpeaks_input_args)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Maximum)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.label_10.sizePolicy().hasHeightForWidth())
|
||||
self.label_10.setSizePolicy(sizePolicy)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("黑体")
|
||||
font.setPointSize(14)
|
||||
self.label_10.setFont(font)
|
||||
self.label_10.setObjectName("label_10")
|
||||
self.gridLayout_73.addWidget(self.label_10, 3, 0, 1, 4)
|
||||
self.gridLayout_67.addWidget(self.groupBox_detect_Rpeaks_input_args, 1, 0, 1, 2)
|
||||
self.groupBox_detect_Rpeaks_signal_parts_list = QtWidgets.QGroupBox(self.groupBox_detect_Rpeaks)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.groupBox_detect_Rpeaks_signal_parts_list.sizePolicy().hasHeightForWidth())
|
||||
self.groupBox_detect_Rpeaks_signal_parts_list.setSizePolicy(sizePolicy)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("黑体")
|
||||
font.setPointSize(10)
|
||||
self.groupBox_detect_Rpeaks_signal_parts_list.setFont(font)
|
||||
self.groupBox_detect_Rpeaks_signal_parts_list.setObjectName("groupBox_detect_Rpeaks_signal_parts_list")
|
||||
self.gridLayout_74 = QtWidgets.QGridLayout(self.groupBox_detect_Rpeaks_signal_parts_list)
|
||||
self.gridLayout_74.setObjectName("gridLayout_74")
|
||||
self.pushButton_detect_Rpeaks_left = QtWidgets.QPushButton(self.groupBox_detect_Rpeaks_signal_parts_list)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Preferred)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.pushButton_detect_Rpeaks_left.sizePolicy().hasHeightForWidth())
|
||||
self.pushButton_detect_Rpeaks_left.setSizePolicy(sizePolicy)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("黑体")
|
||||
font.setPointSize(14)
|
||||
self.pushButton_detect_Rpeaks_left.setFont(font)
|
||||
self.pushButton_detect_Rpeaks_left.setObjectName("pushButton_detect_Rpeaks_left")
|
||||
self.gridLayout_74.addWidget(self.pushButton_detect_Rpeaks_left, 0, 2, 1, 1)
|
||||
self.pushButton_detect_Rpeaks_right = QtWidgets.QPushButton(self.groupBox_detect_Rpeaks_signal_parts_list)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Preferred)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.pushButton_detect_Rpeaks_right.sizePolicy().hasHeightForWidth())
|
||||
self.pushButton_detect_Rpeaks_right.setSizePolicy(sizePolicy)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("黑体")
|
||||
font.setPointSize(14)
|
||||
self.pushButton_detect_Rpeaks_right.setFont(font)
|
||||
self.pushButton_detect_Rpeaks_right.setObjectName("pushButton_detect_Rpeaks_right")
|
||||
self.gridLayout_74.addWidget(self.pushButton_detect_Rpeaks_right, 1, 2, 1, 1)
|
||||
self.tableWidget_detect_Rpeaks_signal_parts_list = QtWidgets.QTableWidget(self.groupBox_detect_Rpeaks_signal_parts_list)
|
||||
self.tableWidget_detect_Rpeaks_signal_parts_list.setColumnCount(1)
|
||||
self.tableWidget_detect_Rpeaks_signal_parts_list.setObjectName("tableWidget_detect_Rpeaks_signal_parts_list")
|
||||
self.tableWidget_detect_Rpeaks_signal_parts_list.setRowCount(0)
|
||||
self.tableWidget_detect_Rpeaks_signal_parts_list.verticalHeader().setVisible(False)
|
||||
self.gridLayout_74.addWidget(self.tableWidget_detect_Rpeaks_signal_parts_list, 0, 0, 2, 2)
|
||||
self.gridLayout_74.setColumnStretch(0, 1)
|
||||
self.gridLayout_74.setColumnStretch(1, 1)
|
||||
self.gridLayout_74.setColumnStretch(2, 1)
|
||||
self.gridLayout_67.addWidget(self.groupBox_detect_Rpeaks_signal_parts_list, 2, 0, 1, 2)
|
||||
self.gridLayout_67.setRowStretch(0, 4)
|
||||
self.gridLayout_67.setRowStretch(1, 4)
|
||||
self.gridLayout_67.setRowStretch(2, 4)
|
||||
self.gridLayout_67.setRowStretch(3, 1)
|
||||
self.verticalLayout_middle.addWidget(self.groupBox_detect_Rpeaks)
|
||||
self.groupBox_detect_Jpeaks = QtWidgets.QGroupBox(self.centralwidget)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.groupBox_detect_Jpeaks.sizePolicy().hasHeightForWidth())
|
||||
self.groupBox_detect_Jpeaks.setSizePolicy(sizePolicy)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("黑体")
|
||||
font.setPointSize(10)
|
||||
self.groupBox_detect_Jpeaks.setFont(font)
|
||||
self.groupBox_detect_Jpeaks.setObjectName("groupBox_detect_Jpeaks")
|
||||
self.gridLayout_69 = QtWidgets.QGridLayout(self.groupBox_detect_Jpeaks)
|
||||
self.gridLayout_69.setObjectName("gridLayout_69")
|
||||
self.pushButton_5 = QtWidgets.QPushButton(self.groupBox_detect_Jpeaks)
|
||||
self.pushButton_5.setObjectName("pushButton_5")
|
||||
self.gridLayout_69.addWidget(self.pushButton_5, 0, 0, 1, 1)
|
||||
self.gridLayout_69.setColumnStretch(0, 1)
|
||||
self.verticalLayout_middle.addWidget(self.groupBox_detect_Jpeaks)
|
||||
self.groupBox_info = QtWidgets.QGroupBox(self.centralwidget)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.groupBox_info.sizePolicy().hasHeightForWidth())
|
||||
self.groupBox_info.setSizePolicy(sizePolicy)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("黑体")
|
||||
font.setPointSize(10)
|
||||
self.groupBox_info.setFont(font)
|
||||
self.groupBox_info.setObjectName("groupBox_info")
|
||||
self.gridLayout_66 = QtWidgets.QGridLayout(self.groupBox_info)
|
||||
self.gridLayout_66.setObjectName("gridLayout_66")
|
||||
self.textBrowser_infoOutput = QtWidgets.QTextBrowser(self.groupBox_info)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("黑体")
|
||||
font.setPointSize(10)
|
||||
self.textBrowser_infoOutput.setFont(font)
|
||||
self.textBrowser_infoOutput.setObjectName("textBrowser_infoOutput")
|
||||
self.gridLayout_66.addWidget(self.textBrowser_infoOutput, 0, 0, 1, 2)
|
||||
self.pushButton_backToMenu = QtWidgets.QPushButton(self.groupBox_info)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Preferred)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.pushButton_backToMenu.sizePolicy().hasHeightForWidth())
|
||||
self.pushButton_backToMenu.setSizePolicy(sizePolicy)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("黑体")
|
||||
font.setPointSize(14)
|
||||
self.pushButton_backToMenu.setFont(font)
|
||||
self.pushButton_backToMenu.setObjectName("pushButton_backToMenu")
|
||||
self.gridLayout_66.addWidget(self.pushButton_backToMenu, 1, 0, 1, 1)
|
||||
self.gridLayout_66.setColumnStretch(0, 1)
|
||||
self.gridLayout_66.setRowStretch(0, 4)
|
||||
self.gridLayout_66.setRowStretch(1, 1)
|
||||
self.verticalLayout_middle.addWidget(self.groupBox_info)
|
||||
self.verticalLayout_middle.setStretch(0, 8)
|
||||
self.verticalLayout_middle.setStretch(1, 5)
|
||||
self.verticalLayout_middle.setStretch(2, 8)
|
||||
self.verticalLayout_middle.setStretch(3, 3)
|
||||
self.gridLayout.addLayout(self.verticalLayout_middle, 0, 2, 1, 1)
|
||||
self.gridLayout.setColumnStretch(0, 5)
|
||||
self.gridLayout.setColumnStretch(2, 3)
|
||||
self.gridLayout.setColumnStretch(3, 15)
|
||||
MainWindow.setCentralWidget(self.centralwidget)
|
||||
self.action_selectPath = QtWidgets.QAction(MainWindow)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("黑体")
|
||||
font.setPointSize(14)
|
||||
self.action_selectPath.setFont(font)
|
||||
self.action_selectPath.setObjectName("action_selectPath")
|
||||
self.action = QtWidgets.QAction(MainWindow)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("黑体")
|
||||
font.setPointSize(14)
|
||||
self.action.setFont(font)
|
||||
self.action.setObjectName("action")
|
||||
|
||||
self.retranslateUi(MainWindow)
|
||||
QtCore.QMetaObject.connectSlotsByName(MainWindow)
|
||||
|
||||
def retranslateUi(self, MainWindow):
|
||||
_translate = QtCore.QCoreApplication.translate
|
||||
MainWindow.setWindowTitle(_translate("MainWindow", "Heartbeat_Annotation"))
|
||||
self.groupBox_func_select.setTitle(_translate("MainWindow", "功能选择"))
|
||||
self.pushButton_detect_Rpeaks.setText(_translate("MainWindow", "ECG的R峰提取"))
|
||||
self.pushButton_detect_Jpeaks.setText(_translate("MainWindow", "BCG的J峰提取"))
|
||||
self.pushButton_rootpath_open.setText(_translate("MainWindow", "浏览"))
|
||||
self.pushButton_resample1000Hz.setText(_translate("MainWindow", "重采样至1000Hz"))
|
||||
self.lineEdit_rootpath.setPlaceholderText(_translate("MainWindow", "数据根目录"))
|
||||
self.groupBox_plot.setTitle(_translate("MainWindow", "绘图区"))
|
||||
self.groupBox_resample1000Hz.setTitle(_translate("MainWindow", "重采样至1000Hz"))
|
||||
self.pushButton_resample1000Hz_view.setText(_translate("MainWindow", "查看结果"))
|
||||
self.groupBox_resample1000Hz_inputFile_check.setTitle(_translate("MainWindow", "程序识别到的文件路径"))
|
||||
self.lineEdit_resample1000Hz_DSbcg_sig_path.setPlaceholderText(_translate("MainWindow", "DSbcg_sig.txt文件路径"))
|
||||
self.label_4.setText(_translate("MainWindow", "raw_org.txt"))
|
||||
self.label_6.setText(_translate("MainWindow", "保存路径"))
|
||||
self.lineEdit_resample1000Hz_raw_org_path.setPlaceholderText(_translate("MainWindow", "raw_org.txt文件路径"))
|
||||
self.label_5.setText(_translate("MainWindow", "DSbcg_sig.txt"))
|
||||
self.lineEdit_resample1000Hz_save_path.setPlaceholderText(_translate("MainWindow", "文件保存路径"))
|
||||
self.pushButton_resample1000Hz_save.setText(_translate("MainWindow", "保存结果"))
|
||||
self.groupBox_resample1000Hz_input_args.setTitle(_translate("MainWindow", "<重采样>参数输入"))
|
||||
self.lineEdit_resample1000Hz_original_sampling_rate.setText(_translate("MainWindow", "100"))
|
||||
self.label_3.setText(_translate("MainWindow", "目标采样率(Hz)"))
|
||||
self.lineEdit_resample1000Hz_target_sampling_rate.setText(_translate("MainWindow", "1000"))
|
||||
self.label_2.setText(_translate("MainWindow", "原始采样率(Hz)"))
|
||||
self.label.setText(_translate("MainWindow", "裁剪的时间(秒)"))
|
||||
self.groupBox_detect_Rpeaks.setTitle(_translate("MainWindow", "ECG的R峰提取"))
|
||||
self.groupBox_detect_Rpeaks_inputFile_check.setTitle(_translate("MainWindow", "程序识别到的文件路径"))
|
||||
self.lineEdit_detect_Rpeaks_filter_ecg_path.setPlaceholderText(_translate("MainWindow", "filter_ecg.txt文件路径"))
|
||||
self.label_7.setText(_translate("MainWindow", "filter_ecg.txt"))
|
||||
self.textBrowser.setHtml(_translate("MainWindow", "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n"
|
||||
"<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\n"
|
||||
"p, li { white-space: pre-wrap; }\n"
|
||||
"</style></head><body style=\" font-family:\'黑体\',\'黑体\',\'黑体\'; font-size:12pt; font-weight:400; font-style:normal;\">\n"
|
||||
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'黑体\',\'黑体\';\">将在此目录的文件夹下生成一一对应的hecg.txt和hRpeak.txt若干个</span></p></body></html>"))
|
||||
self.label_8.setText(_translate("MainWindow", "保存路径"))
|
||||
self.lineEdit_detect_Rpeaks_save_path.setPlaceholderText(_translate("MainWindow", "文件保存路径"))
|
||||
self.pushButton_detect_Rpeaks_save.setText(_translate("MainWindow", "保存结果"))
|
||||
self.pushButton_detect_Rpeaks_view.setText(_translate("MainWindow", "查看结果"))
|
||||
self.groupBox_detect_Rpeaks_input_args.setTitle(_translate("MainWindow", "<R峰提取>参数输入"))
|
||||
self.radioButton_detector_method_Wt.setText(_translate("MainWindow", "Wt"))
|
||||
self.label_9.setText(_translate("MainWindow", "信号采样率(Hz)"))
|
||||
self.lineEdit_detect_Rpeaks_bandpass_low.setText(_translate("MainWindow", "2"))
|
||||
self.radioButton_detector_method_ta.setText(_translate("MainWindow", "ta"))
|
||||
self.label_11.setText(_translate("MainWindow", "寻峰阈值(个)"))
|
||||
self.radioButton_detector_method_Hamilton.setText(_translate("MainWindow", "Hamilton"))
|
||||
self.lineEdit_detect_Rpeaks_sampling_rate.setText(_translate("MainWindow", "1000"))
|
||||
self.label_12.setText(_translate("MainWindow", "带通滤波截止频率(Hz)"))
|
||||
self.radioButton_detector_method_pt.setText(_translate("MainWindow", "pt"))
|
||||
self.radioButton_detector_method_Engzee.setText(_translate("MainWindow", "Engzee"))
|
||||
self.lineEdit_detect_Rpeaks_bandpass_high.setText(_translate("MainWindow", "15"))
|
||||
self.lineEdit_detect_Rpeaks_peaks_value.setText(_translate("MainWindow", "200"))
|
||||
self.label_13.setText(_translate("MainWindow", "~"))
|
||||
self.label_10.setText(_translate("MainWindow", "R峰检测方法选择(一般选pt)"))
|
||||
self.groupBox_detect_Rpeaks_signal_parts_list.setTitle(_translate("MainWindow", "信号片段列表"))
|
||||
self.pushButton_detect_Rpeaks_left.setText(_translate("MainWindow", "上一个"))
|
||||
self.pushButton_detect_Rpeaks_right.setText(_translate("MainWindow", "下一个"))
|
||||
self.groupBox_detect_Jpeaks.setTitle(_translate("MainWindow", "BCG的J峰提取"))
|
||||
self.pushButton_5.setText(_translate("MainWindow", "PushButton"))
|
||||
self.groupBox_info.setTitle(_translate("MainWindow", "信息"))
|
||||
self.pushButton_backToMenu.setText(_translate("MainWindow", "返回主菜单"))
|
||||
self.action_selectPath.setText(_translate("MainWindow", "数据路径选择"))
|
||||
self.action.setText(_translate("MainWindow", "加载存档"))
|
1058
MainWindow.ui
1058
MainWindow.ui
File diff suppressed because it is too large
Load Diff
286
detect_Jpeak.py
Normal file
286
detect_Jpeak.py
Normal file
@ -0,0 +1,286 @@
|
||||
"""
|
||||
测试随便一份文件结果
|
||||
"""
|
||||
|
||||
import numpy as np
|
||||
import torch
|
||||
import torch.nn.functional as F
|
||||
|
||||
from BCGDataset import BCG_Operation
|
||||
from Deep_Model import Unet,Fivelayer_Lstm_Unet,Fivelayer_Unet,Sixlayer_Unet
|
||||
|
||||
modle_dic = {'Fivelayer_Unet':Fivelayer_Unet(),
|
||||
'Fivelayer_Lstm_Unet':Fivelayer_Lstm_Unet(),
|
||||
'Sixlayer_Unet':Sixlayer_Unet(),
|
||||
'U_net':Unet()
|
||||
}
|
||||
def evaluate(test_data, model,fs,useCPU):
|
||||
orgBCG = test_data
|
||||
operation = BCG_Operation()
|
||||
# 降采样
|
||||
orgBCG = operation.down_sample(orgBCG, down_radio=int(fs//100)).copy() #一开始没加.copy()会报错,后来加了就没事了,结果没影响
|
||||
# plt.figure()
|
||||
# plt.plot(orgBCG)
|
||||
# plt.show()
|
||||
orgBCG = orgBCG.reshape(-1, 1000)
|
||||
# test dataset
|
||||
orgData = torch.FloatTensor(orgBCG).unsqueeze(1)
|
||||
# predict
|
||||
if useCPU == True:
|
||||
gpu = False
|
||||
else:
|
||||
gpu = torch.cuda.is_available()
|
||||
if gpu:
|
||||
orgData = orgData.cuda()
|
||||
model.cuda()
|
||||
with torch.no_grad():
|
||||
y_hat = model(orgData)
|
||||
y_prob = F.sigmoid(y_hat)
|
||||
beat = (y_prob>0.5).float().view(-1).cpu().data.numpy()
|
||||
beat_diff = np.diff(beat)
|
||||
up_index = np.argwhere(beat_diff==1)
|
||||
down_index = np.argwhere(beat_diff==-1)
|
||||
|
||||
return beat,up_index,down_index,y_prob
|
||||
|
||||
def find_TPeak(data,peaks,th=50):
|
||||
"""
|
||||
找出真实的J峰或R峰
|
||||
:param data: BCG或ECG数据
|
||||
:param peaks: 初步峰值(从label中导出的location_R)
|
||||
:param th: 范围阈值
|
||||
:return: 真实峰值
|
||||
"""
|
||||
return_peak = []
|
||||
for peak in peaks:
|
||||
if peak>len(data):continue
|
||||
min_win,max_win = max(0,int(peak-th)),min(len(data),int(peak+th))
|
||||
return_peak.append(np.argmax(data[min_win:max_win])+min_win)
|
||||
return return_peak
|
||||
|
||||
def new_calculate_beat(y,predict,th=0.5,up=10,th1=100,th2=45): #通过预测计算回原来J峰的坐标 输入:y_prob,predict=ture,up*10,降采样多少就乘多少
|
||||
"""
|
||||
加上不应期算法,消除误判的峰
|
||||
:param y: 预测输出值或者标签值(label)
|
||||
:param predict: ture or false
|
||||
:param up: 降采样为多少就多少
|
||||
:return: 预测的J峰位置
|
||||
"""
|
||||
if predict:
|
||||
beat = np.where(y>th,1,0)
|
||||
else:
|
||||
beat = y
|
||||
beat_diff = np.diff(beat) #一阶差分
|
||||
up_index = np.argwhere(beat_diff == 1).reshape(-1)
|
||||
down_index = np.argwhere(beat_diff == -1).reshape(-1)
|
||||
# print(up_index,down_index)
|
||||
# print(y)
|
||||
|
||||
# print(y[up_index[4]+1:down_index[4]+1])
|
||||
|
||||
if len(up_index)==0:
|
||||
return [0]
|
||||
if up_index[0] > down_index[0]:
|
||||
down_index = np.delete(down_index, 0)
|
||||
if up_index[-1] > down_index[-1]:
|
||||
up_index = np.delete(up_index, -1)
|
||||
|
||||
"""
|
||||
加上若大于130点都没有一个心跳时,降低阈值重新判决一次,一般降到0.3就可以了;; 但是对于体动片段降低阈值可能又会造成误判,而且出现体动的话会被丢弃,间隔时间也长
|
||||
"""
|
||||
# print("初始:",up_index.shape,down_index.shape)
|
||||
i = 0
|
||||
lenth1 = len(up_index)
|
||||
while i < len(up_index)-1:
|
||||
if abs(up_index[i+1]-up_index[i]) > th1:
|
||||
re_prob = y[down_index[i]+15:up_index[i+1]-15] #原本按正常应该是两个都+1的,但是由于Unet输出低于0.6时,把阈值调小后会在附近一两个点也变为1,会影响判断
|
||||
# print(re_prob.shape)
|
||||
beat1 = np.where(re_prob > 0.1, 1, 0)
|
||||
# print(beat1)
|
||||
if sum(beat1) != 0 and beat1[0] != 1 and beat1[-1] != 1:
|
||||
insert_up_index,insert_down_index = add_beat(re_prob,th=0.1)
|
||||
# print(insert_up_index,insert_down_index,i)
|
||||
if len(insert_up_index) > 1:
|
||||
l = i+1
|
||||
|
||||
for u,d in zip(insert_up_index,insert_down_index):
|
||||
up_index = np.insert(up_index,l,u+down_index[i]+1+15) #np.insert(arr, obj, values, axis) arr原始数组,可一可多,obj插入元素位置,values是插入内容,axis是按行按列插入。
|
||||
down_index = np.insert(down_index,l,d+down_index[i]+1+15)
|
||||
l = l+1
|
||||
# print('l=', l)
|
||||
elif len(insert_up_index) == 1:
|
||||
# print(i)
|
||||
up_index = np.insert(up_index,i+1,down_index[i]+insert_up_index+1+15)
|
||||
down_index = np.insert(down_index,i+1,down_index[i]+insert_down_index+1+15)
|
||||
i = i + len(insert_up_index) + 1
|
||||
else:
|
||||
i = i+1
|
||||
continue
|
||||
else:
|
||||
i = i+1
|
||||
# print("最终:",up_index.shape,down_index.shape)
|
||||
|
||||
"""
|
||||
添加不应期
|
||||
"""
|
||||
new_up_index = up_index
|
||||
new_down_index = down_index
|
||||
flag = 0
|
||||
i = 0
|
||||
lenth = len(up_index)
|
||||
while i < lenth:
|
||||
if abs(up_index[i+1]-up_index[i]) < th2:
|
||||
prob_forward = y[up_index[i]+1:down_index[i]+1]
|
||||
prob_backward = y[up_index[i+1]+1:down_index[i+1]+1]
|
||||
|
||||
forward_score = 0
|
||||
back_score = 0
|
||||
|
||||
forward_count = down_index[i] - up_index[i]
|
||||
back_count = down_index[i+1] - up_index[i+1]
|
||||
|
||||
forward_max = np.max(prob_forward)
|
||||
back_max = np.max(prob_backward)
|
||||
|
||||
forward_min = np.min(prob_forward)
|
||||
back_min = np.min(prob_backward)
|
||||
|
||||
forward_average = np.mean(prob_forward)
|
||||
back_average = np.mean(prob_backward)
|
||||
|
||||
if forward_count > back_count:
|
||||
forward_score = forward_score + 1
|
||||
else:back_score = back_score + 1
|
||||
|
||||
if forward_max > back_max:
|
||||
forward_score = forward_score + 1
|
||||
else:back_score = back_score + 1
|
||||
|
||||
if forward_min < back_min:
|
||||
forward_score = forward_score + 1
|
||||
else:back_score = back_score + 1
|
||||
|
||||
if forward_average > back_average:
|
||||
forward_score = forward_score + 1
|
||||
else:back_score = back_score + 1
|
||||
|
||||
if forward_score >=3:
|
||||
up_index = np.delete(up_index, i+1)
|
||||
down_index = np.delete(down_index, i+1)
|
||||
flag = 1
|
||||
elif back_score >=3:
|
||||
up_index = np.delete(up_index, i)
|
||||
down_index = np.delete(down_index, i)
|
||||
flag = 1
|
||||
elif forward_score == back_score:
|
||||
if forward_average > back_average:
|
||||
up_index = np.delete(up_index, i + 1)
|
||||
down_index = np.delete(down_index, i + 1)
|
||||
flag = 1
|
||||
else:
|
||||
up_index = np.delete(up_index, i)
|
||||
down_index = np.delete(down_index, i)
|
||||
flag = 1
|
||||
if flag == 1:
|
||||
i = i
|
||||
flag = 0
|
||||
else: i = i+1
|
||||
|
||||
else:i = i + 1
|
||||
|
||||
if i > len(up_index)-2:
|
||||
break
|
||||
# elif abs(up_index[i+1]-up_index[i]) > 120:
|
||||
# print("全部处理之后",up_index.shape,down_index.shape)
|
||||
predict_J = (up_index.reshape(-1) + down_index.reshape(-1)) // 2*up
|
||||
# predict_J = predict_J.astype(int)
|
||||
|
||||
return predict_J
|
||||
|
||||
def add_beat(y,th=0.2): #通过预测计算回原来J峰的坐标 输入:y_prob,predict=ture,up*10,降采样多少就乘多少
|
||||
"""
|
||||
:param y: 预测输出值或者标签值(label)
|
||||
:param predict: ture or false
|
||||
:param up: 降采样为多少就多少
|
||||
:return: 预测的J峰位置
|
||||
"""
|
||||
beat1 = np.where(y>th,1,0)
|
||||
beat_diff1 = np.diff(beat1) #一阶差分
|
||||
add_up_index = np.argwhere(beat_diff1 == 1).reshape(-1)
|
||||
add_down_index = np.argwhere(beat_diff1 == -1).reshape(-1)
|
||||
# print(beat1)
|
||||
# print(add_up_index,add_down_index)
|
||||
if len(add_up_index) > 0:
|
||||
if add_up_index[0] > add_down_index[0]:
|
||||
add_down_index = np.delete(add_down_index, 0)
|
||||
if add_up_index[-1] > add_down_index[-1]:
|
||||
add_up_index = np.delete(add_up_index, -1)
|
||||
return add_up_index, add_down_index
|
||||
else:
|
||||
return 0
|
||||
|
||||
def calculate_beat(y,predict,th=0.5,up=10): #通过预测计算回原来J峰的坐标 输入:y_prob,predict=ture,up*10,降采样多少就乘多少
|
||||
"""
|
||||
:param y: 预测输出值或者标签值(label)
|
||||
:param predict: ture or false
|
||||
:param up: 降采样为多少就多少
|
||||
:return: 预测的J峰位置
|
||||
"""
|
||||
if predict:
|
||||
beat = np.where(y>th,1,0)
|
||||
else:
|
||||
beat = y
|
||||
beat_diff = np.diff(beat) #一阶差分
|
||||
up_index = np.argwhere(beat_diff == 1).reshape(-1)
|
||||
down_index = np.argwhere(beat_diff == -1).reshape(-1)
|
||||
if len(up_index)==0:
|
||||
return [0]
|
||||
if up_index[0] > down_index[0]:
|
||||
down_index = np.delete(down_index, 0)
|
||||
if up_index[-1] > down_index[-1]:
|
||||
up_index = np.delete(up_index, -1)
|
||||
predict_J = (up_index.reshape(-1) + down_index.reshape(-1)) // 2*up
|
||||
# predict_J = predict_J.astype(int)
|
||||
|
||||
return predict_J
|
||||
|
||||
def Jpeak_Detection(bcg_data, detector_method, fs, low_cut, high_cut, th1, th2, th3, th4, useCPU):
|
||||
if detector_method == "Fivelayer_Unet_1":
|
||||
molde_name = "Fivelayer_Unet"
|
||||
filename = 1
|
||||
elif detector_method == "Fivelayer_Unet_2":
|
||||
molde_name = "Fivelayer_Unet"
|
||||
filename = 2
|
||||
elif detector_method == "Fivelayer_Lstm_Unet_1":
|
||||
molde_name = "Fivelayer_Lstm_Unet"
|
||||
filename = 1
|
||||
elif detector_method == "Fivelayer_Lstm_Unet_2":
|
||||
molde_name = "Fivelayer_Lstm_Unet"
|
||||
filename = 2
|
||||
|
||||
model_dir = "./result/" + molde_name + '/' + str(filename) + ".pkl" # 模型路径
|
||||
# preprocessing = BCG_Operation(sample_rate=1000)
|
||||
# BCG = preprocessing.down_sample(BCG, down_radio=int(1000 / fs))
|
||||
|
||||
bcg_data = bcg_data[:len(bcg_data) // (fs * 10) * fs * 10]
|
||||
|
||||
model = modle_dic[molde_name]
|
||||
model.load_state_dict(torch.load(model_dir, map_location=torch.device('cpu')))
|
||||
model.eval()
|
||||
preprocessing = BCG_Operation(sample_rate=fs)
|
||||
bcg = preprocessing.Butterworth(bcg_data, "bandpass", low_cut=low_cut, high_cut=high_cut, order=3) * th4
|
||||
|
||||
# J峰预测
|
||||
beat, up_index, down_index, y_prob = evaluate(bcg, model=model, fs=fs, useCPU=useCPU)
|
||||
y_prob = y_prob.cpu().reshape(-1).data.numpy()
|
||||
|
||||
predict_J = new_calculate_beat(y_prob, 1, th=0.6, up=fs // 100, th1=th1, th2=th2)
|
||||
|
||||
predict_J = find_TPeak(bcg, predict_J, th=int(th3 * fs / 1000))
|
||||
predict_J = np.array(predict_J)
|
||||
|
||||
Interval = np.full(len(bcg), np.nan)
|
||||
for i in range(len(predict_J) - 1):
|
||||
Interval[predict_J[i]: predict_J[i + 1]] = predict_J[i + 1] - predict_J[i]
|
||||
|
||||
return bcg, predict_J, Interval
|
@ -9,8 +9,6 @@ import os
|
||||
from BCGDataset import BCGDataset,BCG_Operation,read_all_data
|
||||
import math
|
||||
|
||||
def Normalize(data):
|
||||
return (data - np.min(data))/(np.max(data) - np.min(data))
|
||||
def refinement( data, peak):
|
||||
if len(data) == 0 or len(peak) <=2 : return None
|
||||
firstPeak = peak[0]
|
@ -12,7 +12,7 @@ from time import time, strftime, localtime
|
||||
import numpy as np
|
||||
from PyQt5.QtGui import QFont, QDoubleValidator, QIntValidator
|
||||
from matplotlib.pyplot import title
|
||||
from pandas import DataFrame, read_csv, read_excel, Series, concat
|
||||
from pandas import DataFrame, read_csv
|
||||
from matplotlib.ticker import FuncFormatter
|
||||
from numpy import load, nan, zeros, append, linspace, place
|
||||
from matplotlib import use
|
||||
@ -20,15 +20,16 @@ from matplotlib import pyplot as plt, gridspec
|
||||
from matplotlib.backends.backend_qt5agg import FigureCanvasQTAgg, NavigationToolbar2QT
|
||||
from datetime import datetime
|
||||
from pathlib import Path
|
||||
from PyQt5.QtCore import QCoreApplication, QTimer
|
||||
from PyQt5.QtWidgets import QFileDialog, QMainWindow, QMessageBox, QButtonGroup, QApplication, QTableWidgetItem, \
|
||||
QLineEdit, QAction, QTableWidget
|
||||
from scipy import signal
|
||||
from scipy.signal import butter, filtfilt, find_peaks
|
||||
from PyQt5.QtWidgets import QFileDialog, QMainWindow, QMessageBox, QButtonGroup, QApplication, QTableWidgetItem, QTableWidget, QWidget
|
||||
|
||||
import detect_Rpeak2
|
||||
import resample_1000hz
|
||||
from MainWindow import Ui_MainWindow
|
||||
import detect_Rpeak
|
||||
import detect_Jpeak
|
||||
from ui.MainWindow import Ui_MainWindow
|
||||
from ui.widget_func import Ui_widget_func
|
||||
from ui.widget_resample1000Hz import Ui_widget_resample1000Hz
|
||||
from ui.widget_detect_Rpeaks import Ui_widget_detect_Rpeaks
|
||||
from ui.widget_detect_Jpeaks import Ui_widget_detect_Jpeaks
|
||||
|
||||
use("Qt5Agg") # 声明使用 QT5
|
||||
|
||||
@ -57,6 +58,7 @@ class MainWindow(QMainWindow, Ui_MainWindow):
|
||||
data1 = None
|
||||
data2 = None
|
||||
data3 = None
|
||||
data4 = None
|
||||
ecg_seq = None
|
||||
R_peak_seq = None
|
||||
Interval_seq = None
|
||||
@ -75,37 +77,64 @@ class MainWindow(QMainWindow, Ui_MainWindow):
|
||||
self.verticalLayout_canvas.addWidget(self.canvas)
|
||||
self.verticalLayout_canvas.addWidget(self.figToolbar)
|
||||
|
||||
# Widget初始化
|
||||
self.widget_func = QWidget()
|
||||
self.ui_func = Ui_widget_func()
|
||||
self.ui_func.setupUi(self.widget_func)
|
||||
self.widget_resample1000Hz = QWidget()
|
||||
self.ui_resample1000Hz = Ui_widget_resample1000Hz()
|
||||
self.ui_resample1000Hz.setupUi(self.widget_resample1000Hz)
|
||||
self.widget_detect_Rpeaks = QWidget()
|
||||
self.ui_detect_Rpeaks = Ui_widget_detect_Rpeaks()
|
||||
self.ui_detect_Rpeaks.setupUi(self.widget_detect_Rpeaks)
|
||||
self.widget_detect_Jpeaks = QWidget()
|
||||
self.ui_detect_Jpeaks = Ui_widget_detect_Jpeaks()
|
||||
self.ui_detect_Jpeaks.setupUi(self.widget_detect_Jpeaks)
|
||||
|
||||
# 界面状态初始化
|
||||
self.groupBox_func_select.setVisible(True)
|
||||
self.groupBox_resample1000Hz.setVisible(False)
|
||||
self.groupBox_detect_Rpeaks.setVisible(False)
|
||||
self.groupBox_detect_Jpeaks.setVisible(False)
|
||||
self.groupBox_info.setVisible(False)
|
||||
self.groupBox_plot.setVisible(False)
|
||||
self.lineEdit_resample1000Hz_raw_org_path.setEnabled(False)
|
||||
self.lineEdit_resample1000Hz_DSbcg_sig_path.setEnabled(False)
|
||||
self.lineEdit_detect_Rpeaks_filter_ecg_path.setEnabled(False)
|
||||
self.groupBox_detect_Rpeaks_signal_parts_list.setEnabled(False)
|
||||
self.verticalLayout_menu.addWidget(self.widget_func)
|
||||
self.ui_detect_Rpeaks.groupBox_detect_Rpeaks_signal_parts_list.setEnabled(False)
|
||||
|
||||
# 定义验证器,用于规范lineEdit的输入内容
|
||||
validator_double = QDoubleValidator(-1e100, 1e100, 10)
|
||||
validator_integer = QIntValidator(-2**31, 2**31 - 1)
|
||||
self.ui_resample1000Hz.lineEdit_resample1000Hz_original_sampling_rate.setValidator(validator_integer)
|
||||
self.ui_resample1000Hz.lineEdit_resample1000Hz_target_sampling_rate.setValidator(validator_integer)
|
||||
self.ui_resample1000Hz.lineEdit_resample1000Hz_cut_second.setValidator(validator_integer)
|
||||
self.ui_detect_Rpeaks.lineEdit_detect_Rpeaks_sampling_rate.setValidator(validator_integer)
|
||||
self.ui_detect_Rpeaks.lineEdit_detect_Rpeaks_peaks_value.setValidator(validator_integer)
|
||||
self.ui_detect_Rpeaks.lineEdit_detect_Rpeaks_bandpass_low.setValidator(validator_integer)
|
||||
self.ui_detect_Rpeaks.lineEdit_detect_Rpeaks_bandpass_high.setValidator(validator_integer)
|
||||
self.ui_detect_Jpeaks.lineEdit_detect_Jpeaks_sampling_rate.setValidator(validator_integer)
|
||||
self.ui_detect_Jpeaks.lineEdit_detect_Jpeaks_peaks_value.setValidator(validator_integer)
|
||||
self.ui_detect_Jpeaks.lineEdit_detect_Jpeaks_amp_value.setValidator(validator_integer)
|
||||
self.ui_detect_Jpeaks.lineEdit_detect_Jpeaks_interval_low.setValidator(validator_integer)
|
||||
self.ui_detect_Jpeaks.lineEdit_detect_Jpeaks_interval_high.setValidator(validator_integer)
|
||||
self.ui_detect_Jpeaks.lineEdit_detect_Jpeaks_sampling_rate.setValidator(validator_integer)
|
||||
self.ui_detect_Jpeaks.lineEdit_detect_Jpeaks_bandpass_low.setValidator(validator_integer)
|
||||
self.ui_detect_Jpeaks.lineEdit_detect_Jpeaks_bandpass_high.setValidator(validator_integer)
|
||||
|
||||
# 设置表格属性
|
||||
self.tableWidget_detect_Rpeaks_signal_parts_list.setHorizontalHeaderLabels(['信号片段'])
|
||||
self.tableWidget_detect_Rpeaks_signal_parts_list.setEditTriggers(QTableWidget.NoEditTriggers)
|
||||
self.tableWidget_detect_Rpeaks_signal_parts_list.horizontalHeader().setStretchLastSection(True)
|
||||
self.tableWidget_detect_Rpeaks_signal_parts_list.horizontalHeader().setSectionResizeMode(1)
|
||||
self.ui_detect_Rpeaks.tableWidget_detect_Rpeaks_signal_parts_list.setHorizontalHeaderLabels(['信号片段'])
|
||||
self.ui_detect_Rpeaks.tableWidget_detect_Rpeaks_signal_parts_list.setEditTriggers(QTableWidget.NoEditTriggers)
|
||||
self.ui_detect_Rpeaks.tableWidget_detect_Rpeaks_signal_parts_list.horizontalHeader().setStretchLastSection(True)
|
||||
self.ui_detect_Rpeaks.tableWidget_detect_Rpeaks_signal_parts_list.horizontalHeader().setSectionResizeMode(1)
|
||||
|
||||
# 槽函数连接初始化
|
||||
self.pushButton_rootpath_open.clicked.connect(self.slot_btn_rootpath_open)
|
||||
self.pushButton_resample1000Hz.clicked.connect(self.slot_btn_resample1000Hz)
|
||||
self.pushButton_detect_Rpeaks.clicked.connect(self.slot_btn_detect_Rpeaks)
|
||||
self.pushButton_detect_Jpeaks.clicked.connect(self.slot_btn_detect_Jpeaks)
|
||||
self.ui_func.pushButton_rootpath_open.clicked.connect(self.slot_btn_rootpath_open)
|
||||
self.ui_func.pushButton_resample1000Hz.clicked.connect(self.slot_btn_resample1000Hz)
|
||||
self.ui_func.pushButton_detect_Rpeaks.clicked.connect(self.slot_btn_detect_Rpeaks)
|
||||
self.ui_func.pushButton_detect_Jpeaks.clicked.connect(self.slot_btn_detect_Jpeaks)
|
||||
self.pushButton_backToMenu.clicked.connect(self.slot_btn_backToMenu)
|
||||
self.pushButton_resample1000Hz_view.clicked.connect(self.slot_btn_resample1000Hz_view)
|
||||
self.pushButton_resample1000Hz_save.clicked.connect(self.slot_btn_resample1000Hz_save)
|
||||
self.pushButton_detect_Rpeaks_view.clicked.connect(self.slot_btn_detect_Rpeaks_view)
|
||||
self.pushButton_detect_Rpeaks_save.clicked.connect(self.slot_btn_detect_Rpeaks_save)
|
||||
self.pushButton_detect_Rpeaks_left.clicked.connect(self.slot_btn_detect_Rpeaks_left)
|
||||
self.pushButton_detect_Rpeaks_right.clicked.connect(self.slot_btn_detect_Rpeaks_right)
|
||||
self.tableWidget_detect_Rpeaks_signal_parts_list.cellDoubleClicked.connect(self.slot_tableWidget_detect_Rpeaks_signal_parts_list_on_cell_double_clicked)
|
||||
self.ui_resample1000Hz.pushButton_resample1000Hz_view.clicked.connect(self.slot_btn_resample1000Hz_view)
|
||||
self.ui_resample1000Hz.pushButton_resample1000Hz_save.clicked.connect(self.slot_btn_resample1000Hz_save)
|
||||
self.ui_detect_Rpeaks.pushButton_detect_Rpeaks_view.clicked.connect(self.slot_btn_detect_Rpeaks_view)
|
||||
self.ui_detect_Rpeaks.pushButton_detect_Rpeaks_save.clicked.connect(self.slot_btn_detect_Rpeaks_save)
|
||||
self.ui_detect_Rpeaks.pushButton_detect_Rpeaks_left.clicked.connect(self.slot_btn_detect_Rpeaks_left)
|
||||
self.ui_detect_Rpeaks.pushButton_detect_Rpeaks_right.clicked.connect(self.slot_btn_detect_Rpeaks_right)
|
||||
self.ui_detect_Rpeaks.tableWidget_detect_Rpeaks_signal_parts_list.cellDoubleClicked.connect(self.slot_tableWidget_detect_Rpeaks_signal_parts_list_on_cell_double_clicked)
|
||||
self.ui_detect_Jpeaks.pushButton_detect_Jpeaks_view.clicked.connect(self.slot_btn_detect_Jpeaks_view)
|
||||
self.ui_detect_Jpeaks.pushButton_detect_Jpeaks_save.clicked.connect(self.slot_btn_detect_Jpeaks_save)
|
||||
|
||||
# 消息弹窗初始化
|
||||
self.msgBox = QMessageBox()
|
||||
@ -113,7 +142,7 @@ class MainWindow(QMainWindow, Ui_MainWindow):
|
||||
|
||||
def slot_btn_rootpath_open(self):
|
||||
fileDialog = QFileDialog()
|
||||
if self.sender() == self.pushButton_rootpath_open:
|
||||
if self.sender() == self.ui_func.pushButton_rootpath_open:
|
||||
fileDialog.setFileMode(QFileDialog.Directory)
|
||||
fileDialog.setOption(QFileDialog.ShowDirsOnly, True)
|
||||
if fileDialog.exec_() == QFileDialog.Accepted:
|
||||
@ -125,7 +154,7 @@ class MainWindow(QMainWindow, Ui_MainWindow):
|
||||
self.msgBox.setIcon(QMessageBox.Critical)
|
||||
self.msgBox.exec()
|
||||
return
|
||||
self.lineEdit_rootpath.setText(self.root_path)
|
||||
self.ui_func.lineEdit_rootpath.setText(self.root_path)
|
||||
self.root_path = Path(self.root_path)
|
||||
info("Loading Root Path...")
|
||||
else:
|
||||
@ -147,6 +176,10 @@ class MainWindow(QMainWindow, Ui_MainWindow):
|
||||
return
|
||||
info("Found raw_org.txt and DSbcg_sig.txt.")
|
||||
|
||||
self.widget_func.setParent(None)
|
||||
self.verticalLayout_menu.removeWidget(self.widget_func)
|
||||
self.verticalLayout_menu.addWidget(self.widget_resample1000Hz)
|
||||
|
||||
# 画框子图初始化
|
||||
self.gs = gridspec.GridSpec(1, 1, height_ratios=[1])
|
||||
self.figure.subplots_adjust(top=1, bottom=0, right=1, left=0, hspace=0, wspace=0)
|
||||
@ -159,27 +192,23 @@ class MainWindow(QMainWindow, Ui_MainWindow):
|
||||
self.ax0.grid(True)
|
||||
self.ax0.xaxis.set_major_formatter(FuncFormatter(lambda x, p: f"{x:.0f}"))
|
||||
|
||||
self.lineEdit_resample1000Hz_raw_org_path.setText(str(raw_org_path))
|
||||
self.lineEdit_resample1000Hz_DSbcg_sig_path.setText(str(DSbcg_sig_path))
|
||||
self.lineEdit_resample1000Hz_save_path.setText(str(self.root_path / "DSbcg_sig_1000hz3.txt"))
|
||||
self.ui_resample1000Hz.lineEdit_resample1000Hz_raw_org_path.setText(str(raw_org_path))
|
||||
self.ui_resample1000Hz.lineEdit_resample1000Hz_DSbcg_sig_path.setText(str(DSbcg_sig_path))
|
||||
self.ui_resample1000Hz.lineEdit_resample1000Hz_save_path.setText(str(self.root_path / "DSbcg_sig_1000hz3.txt"))
|
||||
self.textBrowser_update("提示:找到raw_org.txt和DSbcg_sig.txt")
|
||||
self.data1 = read_csv(raw_org_path, encoding="utf-8").to_numpy()
|
||||
self.data2 = read_csv(DSbcg_sig_path, encoding="utf-8", sep="\t")
|
||||
self.groupBox_func_select.setVisible(False)
|
||||
self.groupBox_resample1000Hz.setVisible(True)
|
||||
self.groupBox_info.setVisible(True)
|
||||
self.groupBox_plot.setVisible(True)
|
||||
|
||||
def slot_btn_resample1000Hz_view(self):
|
||||
if self.lineEdit_resample1000Hz_original_sampling_rate.text() != "" and self.lineEdit_resample1000Hz_target_sampling_rate.text() != "" and self.lineEdit_resample1000Hz_cut_second.text() != "":
|
||||
if self.ui_resample1000Hz.lineEdit_resample1000Hz_original_sampling_rate.text() != "" and self.ui_resample1000Hz.lineEdit_resample1000Hz_target_sampling_rate.text() != "" and self.ui_resample1000Hz.lineEdit_resample1000Hz_cut_second.text() != "":
|
||||
self.ax0.remove()
|
||||
self.ax0 = self.figure.add_subplot(self.gs[0])
|
||||
self.ax0 = plt.gca()
|
||||
self.ax0.grid(True)
|
||||
self.ax0.xaxis.set_major_formatter(FuncFormatter(lambda x, p: f"{x:.0f}"))
|
||||
data_before = self.data1
|
||||
data_test = resample_1000hz.upsample(self.data2.iloc[:, 2], float(self.lineEdit_resample1000Hz_original_sampling_rate.text()), float(self.lineEdit_resample1000Hz_target_sampling_rate.text()))
|
||||
data_new = resample_1000hz.upsample(self.data2.iloc[int(float(self.lineEdit_resample1000Hz_original_sampling_rate.text()) * float(self.lineEdit_resample1000Hz_cut_second.text())):, 2], float(self.lineEdit_resample1000Hz_original_sampling_rate.text()), float(self.lineEdit_resample1000Hz_target_sampling_rate.text()))
|
||||
data_test = resample_1000hz.upsample(self.data2.iloc[:, 2], float(self.ui_resample1000Hz.lineEdit_resample1000Hz_original_sampling_rate.text()), float(self.ui_resample1000Hz.lineEdit_resample1000Hz_target_sampling_rate.text()))
|
||||
data_new = resample_1000hz.upsample(self.data2.iloc[int(float(self.ui_resample1000Hz.lineEdit_resample1000Hz_original_sampling_rate.text()) * float(self.ui_resample1000Hz.lineEdit_resample1000Hz_cut_second.text())):, 2], float(self.ui_resample1000Hz.lineEdit_resample1000Hz_original_sampling_rate.text()), float(self.ui_resample1000Hz.lineEdit_resample1000Hz_target_sampling_rate.text()))
|
||||
self.ax0.plot(data_before, 'r', label="Original Data")
|
||||
self.ax0.plot(data_test + 200, 'g', label="Filtered Data")
|
||||
self.ax0.plot(data_new, 'b', label="Data After Cut")
|
||||
@ -197,15 +226,17 @@ class MainWindow(QMainWindow, Ui_MainWindow):
|
||||
|
||||
def slot_btn_resample1000Hz_save(self):
|
||||
if self.data3 is not None:
|
||||
if self.lineEdit_resample1000Hz_save_path.text() != "" and self.lineEdit_resample1000Hz_save_path.text().endswith(".txt"):
|
||||
reply = QMessageBox.question(self, "警告:确认操作", f"你确定要将裁剪结果保存到{self.lineEdit_resample1000Hz_save_path.text()}?", QMessageBox.Yes | QMessageBox.No, QMessageBox.No)
|
||||
if self.ui_resample1000Hz.lineEdit_resample1000Hz_save_path.text() != "" and self.ui_resample1000Hz.lineEdit_resample1000Hz_save_path.text().endswith(".txt"):
|
||||
reply = QMessageBox.question(self, "警告:确认操作", f"你确定要将裁剪结果保存到{self.ui_resample1000Hz.lineEdit_resample1000Hz_save_path.text()}?", QMessageBox.Yes | QMessageBox.No, QMessageBox.No)
|
||||
if reply == QMessageBox.Yes:
|
||||
np.savetxt(self.lineEdit_resample1000Hz_save_path.text(), self.data3, fmt='%.4f')
|
||||
info(f"Saved Data After Cut to {self.lineEdit_resample1000Hz_save_path.text()}.")
|
||||
self.textBrowser_update(f"提示:保存成功至{self.lineEdit_resample1000Hz_save_path.text()}")
|
||||
self.msgBox.setText(f"保存成功至{self.lineEdit_resample1000Hz_save_path.text()}")
|
||||
np.savetxt(self.ui_resample1000Hz.lineEdit_resample1000Hz_save_path.text(), self.data3, fmt='%.4f')
|
||||
info(f"Saved Data After Cut to {self.ui_resample1000Hz.lineEdit_resample1000Hz_save_path.text()}.")
|
||||
self.textBrowser_update(f"提示:保存成功至{self.ui_resample1000Hz.lineEdit_resample1000Hz_save_path.text()}")
|
||||
self.msgBox.setText(f"保存成功至{self.ui_resample1000Hz.lineEdit_resample1000Hz_save_path.text()}")
|
||||
self.msgBox.setIcon(QMessageBox.Information)
|
||||
self.msgBox.exec()
|
||||
else:
|
||||
self.textBrowser_update(f"提示:保存操作取消")
|
||||
else:
|
||||
self.textBrowser_update("错误:保存路径输入有误,请检查后重新执行保存")
|
||||
self.msgBox.setText("保存路径输入有误,请检查后重新执行保存")
|
||||
@ -229,6 +260,10 @@ class MainWindow(QMainWindow, Ui_MainWindow):
|
||||
return
|
||||
info("Found filter_ecg.txt.")
|
||||
|
||||
self.widget_func.setParent(None)
|
||||
self.verticalLayout_menu.removeWidget(self.widget_func)
|
||||
self.verticalLayout_menu.addWidget(self.widget_detect_Rpeaks)
|
||||
|
||||
# 画框子图初始化
|
||||
self.gs = gridspec.GridSpec(2, 1, height_ratios=[1, 1])
|
||||
self.figure.subplots_adjust(top=1, bottom=0, right=1, left=0, hspace=0, wspace=0)
|
||||
@ -246,71 +281,65 @@ class MainWindow(QMainWindow, Ui_MainWindow):
|
||||
self.ax1.grid(True)
|
||||
self.ax1.xaxis.set_major_formatter(FuncFormatter(lambda x, p: f"{x:.0f}"))
|
||||
|
||||
self.lineEdit_detect_Rpeaks_filter_ecg_path.setText(str(filter_ecg_path))
|
||||
self.lineEdit_detect_Rpeaks_save_path.setText(str(self.root_path / "label"))
|
||||
self.ui_detect_Rpeaks.lineEdit_detect_Rpeaks_filter_ecg_path.setText(str(filter_ecg_path))
|
||||
self.ui_detect_Rpeaks.lineEdit_detect_Rpeaks_save_path.setText(str(self.root_path / "label"))
|
||||
self.textBrowser_update("提示:找到filter_ecg.txt")
|
||||
self.data1 = read_csv(filter_ecg_path, encoding="utf-8").to_numpy().reshape(-1)
|
||||
self.groupBox_func_select.setVisible(False)
|
||||
self.groupBox_detect_Rpeaks.setVisible(True)
|
||||
self.groupBox_info.setVisible(True)
|
||||
self.groupBox_plot.setVisible(True)
|
||||
self.radioButton_detector_method_pt.setChecked(True)
|
||||
|
||||
def slot_btn_detect_Rpeaks_view(self):
|
||||
if self.lineEdit_detect_Rpeaks_sampling_rate.text() != "" and self.lineEdit_detect_Rpeaks_peaks_value.text() != "" and self.lineEdit_detect_Rpeaks_bandpass_low.text() != "" and self.lineEdit_detect_Rpeaks_bandpass_high.text() != "":
|
||||
if self.lineEdit_detect_Rpeaks_save_path.text() != "":
|
||||
self.ax0.remove()
|
||||
self.ax0 = self.figure.add_subplot(self.gs[0])
|
||||
self.ax0 = plt.gca()
|
||||
self.ax0.grid(True)
|
||||
self.ax0.tick_params(axis='x', colors='white')
|
||||
self.ax0.xaxis.set_major_formatter(FuncFormatter(lambda x, p: f"{x:.0f}"))
|
||||
self.ax1.remove()
|
||||
self.ax1 = self.figure.add_subplot(self.gs[1], sharex=self.ax0)
|
||||
self.ax1 = plt.gca()
|
||||
self.ax1.grid(True)
|
||||
self.ax1.xaxis.set_major_formatter(FuncFormatter(lambda x, p: f"{x:.0f}"))
|
||||
ecg_data = self.data1
|
||||
if self.radioButton_detector_method_pt.isChecked():
|
||||
detector_method = 'pt'
|
||||
elif self.radioButton_detector_method_ta.isChecked():
|
||||
detector_method = 'ta'
|
||||
elif self.radioButton_detector_method_Wt.isChecked():
|
||||
detector_method = 'Wt'
|
||||
elif self.radioButton_detector_method_Hamilton.isChecked():
|
||||
detector_method = 'Hamilton'
|
||||
elif self.radioButton_detector_method_Engzee.isChecked():
|
||||
detector_method = 'Engzee'
|
||||
self.ecg_seq, self.R_peak_seq, self.Interval_seq, self.RRIV_seq = detect_Rpeak2.Rpeak_Detection(ecg_data, int(self.lineEdit_detect_Rpeaks_sampling_rate.text()), int(self.lineEdit_detect_Rpeaks_bandpass_low.text()), int(self.lineEdit_detect_Rpeaks_bandpass_high.text()), int(self.lineEdit_detect_Rpeaks_peaks_value.text()), detector_method)
|
||||
if len(self.ecg_seq) != len(self.R_peak_seq) != len(self.Interval_seq) != len(self.RRIV_seq):
|
||||
error("len(self.ecg_seq) and len(self.R_peak_seq) and len(self.Interval_seq) and len(self.RRIV_seq) are not equal.")
|
||||
self.textBrowser_update("错误:ecg_seq和R_peak_seq和Interval_seq和RRIV_seq的长度不相等")
|
||||
return
|
||||
if self.ui_detect_Rpeaks.lineEdit_detect_Rpeaks_sampling_rate.text() != "" and self.ui_detect_Rpeaks.lineEdit_detect_Rpeaks_peaks_value.text() != "" and self.ui_detect_Rpeaks.lineEdit_detect_Rpeaks_bandpass_low.text() != "" and self.ui_detect_Rpeaks.lineEdit_detect_Rpeaks_bandpass_high.text() != "":
|
||||
self.ax0.remove()
|
||||
self.ax0 = self.figure.add_subplot(self.gs[0])
|
||||
self.ax0 = plt.gca()
|
||||
self.ax0.grid(True)
|
||||
self.ax0.tick_params(axis='x', colors='white')
|
||||
self.ax0.xaxis.set_major_formatter(FuncFormatter(lambda x, p: f"{x:.0f}"))
|
||||
self.ax1.remove()
|
||||
self.ax1 = self.figure.add_subplot(self.gs[1], sharex=self.ax0)
|
||||
self.ax1 = plt.gca()
|
||||
self.ax1.grid(True)
|
||||
self.ax1.xaxis.set_major_formatter(FuncFormatter(lambda x, p: f"{x:.0f}"))
|
||||
ecg_data = self.data1
|
||||
if self.ui_detect_Rpeaks.radioButton_detector_method_pt.isChecked():
|
||||
detector_method = 'pt'
|
||||
elif self.ui_detect_Rpeaks.radioButton_detector_method_ta.isChecked():
|
||||
detector_method = 'ta'
|
||||
elif self.ui_detect_Rpeaks.radioButton_detector_method_Wt.isChecked():
|
||||
detector_method = 'Wt'
|
||||
elif self.ui_detect_Rpeaks.radioButton_detector_method_Hamilton.isChecked():
|
||||
detector_method = 'Hamilton'
|
||||
elif self.ui_detect_Rpeaks.radioButton_detector_method_Engzee.isChecked():
|
||||
detector_method = 'Engzee'
|
||||
self.ecg_seq, self.R_peak_seq, self.Interval_seq, self.RRIV_seq = detect_Rpeak.Rpeak_Detection(ecg_data, int(self.ui_detect_Rpeaks.lineEdit_detect_Rpeaks_sampling_rate.text()), int(self.ui_detect_Rpeaks.lineEdit_detect_Rpeaks_bandpass_low.text()), int(self.ui_detect_Rpeaks.lineEdit_detect_Rpeaks_bandpass_high.text()), int(self.ui_detect_Rpeaks.lineEdit_detect_Rpeaks_peaks_value.text()), detector_method)
|
||||
if len(self.ecg_seq) != len(self.R_peak_seq) != len(self.Interval_seq) != len(self.RRIV_seq):
|
||||
error("len(self.ecg_seq) and len(self.R_peak_seq) and len(self.Interval_seq) and len(self.RRIV_seq) are not equal.")
|
||||
self.textBrowser_update("错误:ecg_seq和R_peak_seq和Interval_seq和RRIV_seq的长度不相等")
|
||||
return
|
||||
|
||||
info(f"Data Length:{len(ecg_data)}")
|
||||
self.textBrowser_update(f"数据长度:{len(ecg_data)}")
|
||||
info(f"Data Duration:{len(ecg_data) / int(self.lineEdit_detect_Rpeaks_sampling_rate.text()) / 60}分钟")
|
||||
self.textBrowser_update(f"数据时长:{len(ecg_data) / int(self.lineEdit_detect_Rpeaks_sampling_rate.text()) / 60}分钟")
|
||||
info(f"Data Parts:{len(self.ecg_seq)}小时")
|
||||
self.textBrowser_update(f"数据总时长:{len(self.ecg_seq)}小时")
|
||||
info(f"Data Length: {len(ecg_data)}")
|
||||
self.textBrowser_update(f"数据长度:{len(ecg_data)}")
|
||||
info(f"Data Duration: {len(ecg_data) / int(self.ui_detect_Rpeaks.lineEdit_detect_Rpeaks_sampling_rate.text()) / 60} min")
|
||||
self.textBrowser_update(f"数据时长:{len(ecg_data) / int(self.ui_detect_Rpeaks.lineEdit_detect_Rpeaks_sampling_rate.text()) / 60}分钟")
|
||||
info(f"Data Parts: {len(self.ecg_seq)} hours")
|
||||
self.textBrowser_update(f"数据总时长:{len(self.ecg_seq)}小时")
|
||||
|
||||
self.tableWidget_detect_Rpeaks_signal_parts_list.setRowCount(len(self.ecg_seq))
|
||||
for row in range(len(self.ecg_seq)):
|
||||
item = QTableWidgetItem(str(row + 1))
|
||||
self.tableWidget_detect_Rpeaks_signal_parts_list.setItem(row, 0, item)
|
||||
self.ui_detect_Rpeaks.tableWidget_detect_Rpeaks_signal_parts_list.setRowCount(len(self.ecg_seq))
|
||||
for row in range(len(self.ecg_seq)):
|
||||
item = QTableWidgetItem(str(row + 1))
|
||||
self.ui_detect_Rpeaks.tableWidget_detect_Rpeaks_signal_parts_list.setItem(row, 0, item)
|
||||
|
||||
self.groupBox_detect_Rpeaks_signal_parts_list.setEnabled(True)
|
||||
self.ui_detect_Rpeaks.groupBox_detect_Rpeaks_signal_parts_list.setEnabled(True)
|
||||
|
||||
self.ax0.plot(self.R_peak_seq[0][2: ], self.RRIV_seq[0], 'r.', label="RRIV")
|
||||
self.ax0.legend(loc='upper right')
|
||||
self.ax1.plot(self.ecg_seq[0], 'r', label="ECG")
|
||||
self.ax1.plot(self.R_peak_seq[0], self.ecg_seq[0][self.R_peak_seq[0]], 'b*', label="R_peaks")
|
||||
self.ax1.plot(self.Interval_seq[0], 'g', label="Interval")
|
||||
self.ax1.legend(loc='upper right')
|
||||
self.canvas.draw()
|
||||
self.temp = 0
|
||||
info("Finished R peaks Detect and Data Part 1 Plot.")
|
||||
self.textBrowser_update("提示:完成R峰提取并绘制信号第1段")
|
||||
self.ax0.plot(self.R_peak_seq[0][2: ], self.RRIV_seq[0], 'r.', label="RRIV")
|
||||
self.ax0.legend(loc='upper right')
|
||||
self.ax1.plot(self.ecg_seq[0], 'r', label="ECG")
|
||||
self.ax1.plot(self.R_peak_seq[0], self.ecg_seq[0][self.R_peak_seq[0]], 'b*', label="R_peaks")
|
||||
self.ax1.plot(self.Interval_seq[0], 'g', label="Interval")
|
||||
self.ax1.legend(loc='upper right')
|
||||
self.canvas.draw()
|
||||
self.temp = 0
|
||||
info("Finished R peaks Detect and Data Part 1 Plot.")
|
||||
self.textBrowser_update("提示:完成R峰提取并绘制信号第1段")
|
||||
else:
|
||||
error(f"Miss Args for detect_Rpeaks.")
|
||||
self.textBrowser_update("错误:参数输入存在空值")
|
||||
@ -320,21 +349,23 @@ class MainWindow(QMainWindow, Ui_MainWindow):
|
||||
|
||||
def slot_btn_detect_Rpeaks_save(self):
|
||||
if self.ecg_seq is not None and self.R_peak_seq is not None:
|
||||
if self.lineEdit_detect_Rpeaks_save_path.text() != "":
|
||||
if Path(self.lineEdit_detect_Rpeaks_save_path.text()).is_dir() == False:
|
||||
Path(self.lineEdit_detect_Rpeaks_save_path.text()).mkdir(parents=True, exist_ok=True)
|
||||
if self.ui_detect_Rpeaks.lineEdit_detect_Rpeaks_save_path.text() != "":
|
||||
if Path(self.ui_detect_Rpeaks.lineEdit_detect_Rpeaks_save_path.text()).is_dir() == False:
|
||||
Path(self.ui_detect_Rpeaks.lineEdit_detect_Rpeaks_save_path.text()).mkdir(parents=True, exist_ok=True)
|
||||
info("Save Path is not Exist, Made it as a New Directory.")
|
||||
self.textBrowser_update("提示:检测到保存路径所指向的文件夹不存在,已创建相应文件夹")
|
||||
reply = QMessageBox.question(self, "警告:确认操作", f"你确定要将裁剪结果保存到{self.lineEdit_resample1000Hz_save_path.text()}?", QMessageBox.Yes | QMessageBox.No, QMessageBox.No)
|
||||
reply = QMessageBox.question(self, "警告:确认操作", f"你确定要将裁剪结果保存到{self.ui_detect_Rpeaks.lineEdit_detect_Rpeaks_save_path.text()}?", QMessageBox.Yes | QMessageBox.No, QMessageBox.No)
|
||||
if reply == QMessageBox.Yes:
|
||||
for idx in range(len(self.ecg_seq)):
|
||||
DataFrame(self.ecg_seq[idx].reshape(-1)).to_csv(str(Path(self.lineEdit_detect_Rpeaks_save_path.text()) / f"{idx + 1}ecg.txt"), index=False, header=None)
|
||||
DataFrame(self.R_peak_seq[idx].reshape(-1)).to_csv(str(Path(self.lineEdit_detect_Rpeaks_save_path.text()) / f"{idx + 1}Rpeak.txt"), index=False, header=None)
|
||||
info(f"Saved Data {idx + 1} to Directory {self.lineEdit_detect_Rpeaks_save_path.text()}.")
|
||||
self.textBrowser_update(f"提示:保存片段{idx + 1}成功至文件夹{self.lineEdit_detect_Rpeaks_save_path.text()}")
|
||||
self.msgBox.setText(f"保存成功至{self.lineEdit_detect_Rpeaks_save_path.text()}")
|
||||
DataFrame(self.ecg_seq[idx].reshape(-1)).to_csv(str(Path(self.ui_detect_Rpeaks.lineEdit_detect_Rpeaks_save_path.text()) / f"{idx + 1}ecg.txt"), index=False, header=None)
|
||||
DataFrame(self.R_peak_seq[idx].reshape(-1)).to_csv(str(Path(self.ui_detect_Rpeaks.lineEdit_detect_Rpeaks_save_path.text()) / f"{idx + 1}Rpeak.txt"), index=False, header=None)
|
||||
info(f"Saved Data {idx + 1} to Directory {self.ui_detect_Rpeaks.lineEdit_detect_Rpeaks_save_path.text()}.")
|
||||
self.textBrowser_update(f"提示:保存片段{idx + 1}成功至文件夹{self.ui_detect_Rpeaks.lineEdit_detect_Rpeaks_save_path.text()}")
|
||||
self.msgBox.setText(f"保存成功至{self.ui_detect_Rpeaks.lineEdit_detect_Rpeaks_save_path.text()}")
|
||||
self.msgBox.setIcon(QMessageBox.Information)
|
||||
self.msgBox.exec()
|
||||
else:
|
||||
self.textBrowser_update(f"提示:保存操作取消")
|
||||
else:
|
||||
self.textBrowser_update("错误:保存路径输入有误,请检查后重新执行保存")
|
||||
self.msgBox.setText("保存路径输入有误,请检查后重新执行保存")
|
||||
@ -348,7 +379,7 @@ class MainWindow(QMainWindow, Ui_MainWindow):
|
||||
self.msgBox.exec()
|
||||
|
||||
def slot_tableWidget_detect_Rpeaks_signal_parts_list_on_cell_double_clicked(self, row, column):
|
||||
self.temp = int(self.tableWidget_detect_Rpeaks_signal_parts_list.item(row, column).text()) - 1
|
||||
self.temp = int(self.ui_detect_Rpeaks.tableWidget_detect_Rpeaks_signal_parts_list.item(row, column).text()) - 1
|
||||
self.detect_Rpeaks_update_plot(self.temp)
|
||||
info(f"Finished Data Part {self.temp + 1} Plot.")
|
||||
self.textBrowser_update(f"提示:完成绘制信号第{self.temp + 1}段")
|
||||
@ -365,7 +396,7 @@ class MainWindow(QMainWindow, Ui_MainWindow):
|
||||
self.textBrowser_update(f"提示:完成绘制信号第{self.temp + 1}段")
|
||||
|
||||
def slot_btn_detect_Rpeaks_right(self):
|
||||
if self.temp >= int(self.tableWidget_detect_Rpeaks_signal_parts_list.item(self.tableWidget_detect_Rpeaks_signal_parts_list.rowCount() - 1, 0).text()) - 1:
|
||||
if self.temp >= int(self.ui_detect_Rpeaks.tableWidget_detect_Rpeaks_signal_parts_list.item(self.ui_detect_Rpeaks.tableWidget_detect_Rpeaks_signal_parts_list.rowCount() - 1, 0).text()) - 1:
|
||||
self.msgBox.setText("你正在查看最后1段信号")
|
||||
self.msgBox.setIcon(QMessageBox.Warning)
|
||||
self.msgBox.exec()
|
||||
@ -396,29 +427,136 @@ class MainWindow(QMainWindow, Ui_MainWindow):
|
||||
self.canvas.draw()
|
||||
|
||||
def slot_btn_detect_Jpeaks(self):
|
||||
pass
|
||||
DSbcg_sig_1000hz3_path = self.root_path / "DSbcg_sig_1000hz3.txt"
|
||||
if not DSbcg_sig_1000hz3_path.exists():
|
||||
error("Can't Find DSbcg_sig_1000hz3.txt.")
|
||||
self.textBrowser_update("错误:无法找到DSbcg_sig_1000hz3.txt,无法执行<J峰提取>,请检查文件是否存在")
|
||||
self.msgBox.setText("无法找到DSbcg_sig_1000hz3.txt,无法执行<J峰提取>,请检查文件是否存在")
|
||||
self.msgBox.setIcon(QMessageBox.Critical)
|
||||
self.msgBox.exec()
|
||||
return
|
||||
info("Found DSbcg_sig_1000hz3.txt.")
|
||||
|
||||
self.widget_func.setParent(None)
|
||||
self.verticalLayout_menu.removeWidget(self.widget_func)
|
||||
self.verticalLayout_menu.addWidget(self.widget_detect_Jpeaks)
|
||||
|
||||
# 画框子图初始化
|
||||
self.gs = gridspec.GridSpec(1, 1, height_ratios=[1])
|
||||
self.figure.subplots_adjust(top=1, bottom=0, right=1, left=0, hspace=0, wspace=0)
|
||||
plt.margins(0, 0)
|
||||
plt.tight_layout()
|
||||
plt.xticks([])
|
||||
plt.yticks([])
|
||||
self.ax0 = self.figure.add_subplot(self.gs[0])
|
||||
self.ax0 = plt.gca()
|
||||
self.ax0.grid(True)
|
||||
self.ax0.tick_params(axis='x', colors='white')
|
||||
self.ax0.xaxis.set_major_formatter(FuncFormatter(lambda x, p: f"{x:.0f}"))
|
||||
|
||||
self.ui_detect_Jpeaks.lineEdit_detect_Jpeaks_DSbcg_sig_1000hz3_path.setText(str(DSbcg_sig_1000hz3_path))
|
||||
self.ui_detect_Jpeaks.lineEdit_detect_Jpeaks_save_path.setText(str(Path(self.root_path) / "Jpeak.txt"))
|
||||
self.textBrowser_update("提示:找到DSbcg_sig_1000hz3.txt")
|
||||
self.data1 = np.array(read_csv(DSbcg_sig_1000hz3_path, header=None)).reshape(-1)
|
||||
|
||||
def slot_btn_detect_Jpeaks_view(self):
|
||||
if self.ui_detect_Jpeaks.lineEdit_detect_Jpeaks_sampling_rate.text() != "" and self.ui_detect_Jpeaks.lineEdit_detect_Jpeaks_peaks_value.text() != "" and self.ui_detect_Jpeaks.lineEdit_detect_Jpeaks_bandpass_low.text() != "" and self.ui_detect_Jpeaks.lineEdit_detect_Jpeaks_bandpass_high.text() != "" and self.ui_detect_Jpeaks.lineEdit_detect_Jpeaks_amp_value.text() != "" and self.ui_detect_Jpeaks.lineEdit_detect_Jpeaks_interval_low.text() != "" and self.ui_detect_Jpeaks.lineEdit_detect_Jpeaks_interval_high.text() != "":
|
||||
self.ax0.remove()
|
||||
self.ax0 = self.figure.add_subplot(self.gs[0])
|
||||
self.ax0 = plt.gca()
|
||||
self.ax0.grid(True)
|
||||
self.ax0.tick_params(axis='x', colors='white')
|
||||
self.ax0.xaxis.set_major_formatter(FuncFormatter(lambda x, p: f"{x:.0f}"))
|
||||
bcg_data = self.data1
|
||||
if self.ui_detect_Jpeaks.radioButton_Fivelayer_Unet_1.isChecked():
|
||||
detector_method = 'Fivelayer_Unet_1'
|
||||
elif self.ui_detect_Jpeaks.radioButton_Fivelayer_Unet_2.isChecked():
|
||||
detector_method = 'Fivelayer_Unet_2'
|
||||
elif self.ui_detect_Jpeaks.radioButton_Fivelayer_Lstm_Unet_1.isChecked():
|
||||
detector_method = 'Fivelayer_Lstm_Unet_1'
|
||||
elif self.ui_detect_Jpeaks.radioButton_Fivelayer_Lstm_Unet_2.isChecked():
|
||||
detector_method = 'Fivelayer_Lstm_Unet_2'
|
||||
else:
|
||||
detector_method = 'Fivelayer_Unet_1'
|
||||
|
||||
if self.ui_detect_Jpeaks.checkBox_useCPU.isChecked() == True:
|
||||
useCPU = True
|
||||
else:
|
||||
useCPU = False
|
||||
|
||||
self.data2, self.data3, self.data4 = detect_Jpeak.Jpeak_Detection(bcg_data, detector_method, int(self.ui_detect_Jpeaks.lineEdit_detect_Jpeaks_sampling_rate.text()), int(self.ui_detect_Jpeaks.lineEdit_detect_Jpeaks_bandpass_low.text()), int(self.ui_detect_Jpeaks.lineEdit_detect_Jpeaks_bandpass_high.text()), int(self.ui_detect_Jpeaks.lineEdit_detect_Jpeaks_interval_high.text()), int(self.ui_detect_Jpeaks.lineEdit_detect_Jpeaks_interval_low.text()), int(self.ui_detect_Jpeaks.lineEdit_detect_Jpeaks_peaks_value.text()), int(self.ui_detect_Jpeaks.lineEdit_detect_Jpeaks_amp_value.text()), useCPU)
|
||||
|
||||
info(f"Data Length: {len(bcg_data)}")
|
||||
self.textBrowser_update(f"数据长度:{len(bcg_data)}")
|
||||
info(f"Data Duration: {len(bcg_data) / int(self.ui_detect_Jpeaks.lineEdit_detect_Jpeaks_sampling_rate.text()) / 60} min")
|
||||
self.textBrowser_update(f"数据时长:{len(bcg_data) / int(self.ui_detect_Jpeaks.lineEdit_detect_Jpeaks_sampling_rate.text()) / 60} 分钟")
|
||||
info(f"Quantity of J_peaks: {len(self.data3)}")
|
||||
self.textBrowser_update(f"J峰个数:{len(self.data3)}")
|
||||
|
||||
self.ax0.plot(self.data2, 'b', label="BCG_filtered")
|
||||
self.ax0.plot(self.data3, self.data2[self.data3], 'r.', label="Predict_J_peaks")
|
||||
self.ax0.plot(self.data4, 'orange', label="Interval")
|
||||
self.ax0.legend(loc='upper right')
|
||||
self.canvas.draw()
|
||||
info("Finished J peaks Detect and Data Plot.")
|
||||
self.textBrowser_update("提示:完成J峰提取并绘制信号")
|
||||
else:
|
||||
error(f"Miss Args for detect_Jpeaks.")
|
||||
self.textBrowser_update("错误:参数输入存在空值")
|
||||
self.msgBox.setText("参数输入存在空值")
|
||||
self.msgBox.setIcon(QMessageBox.Critical)
|
||||
self.msgBox.exec()
|
||||
|
||||
def slot_btn_detect_Jpeaks_save(self):
|
||||
if self.data2 is not None and self.data3 is not None and self.data4 is not None:
|
||||
if self.ui_detect_Jpeaks.lineEdit_detect_Jpeaks_save_path.text() != "" and self.ui_detect_Jpeaks.lineEdit_detect_Jpeaks_save_path.text().endswith(".txt"):
|
||||
reply = QMessageBox.question(self, "警告:确认操作", f"你确定要将预测结果保存到{self.ui_detect_Jpeaks.lineEdit_detect_Jpeaks_save_path.text()}?", QMessageBox.Yes | QMessageBox.No, QMessageBox.No)
|
||||
if reply == QMessageBox.Yes:
|
||||
DataFrame(self.data3.reshape(-1)).to_csv(self.ui_detect_Jpeaks.lineEdit_detect_Jpeaks_save_path.text(), index=False, header=None)
|
||||
info(f"Saved Data to Directory {self.ui_detect_Jpeaks.lineEdit_detect_Jpeaks_save_path.text()}.")
|
||||
self.textBrowser_update(f"提示:保存数据成功至文件夹{self.ui_detect_Jpeaks.lineEdit_detect_Jpeaks_save_path.text()}")
|
||||
self.msgBox.setText(f"保存成功至{self.ui_detect_Jpeaks.lineEdit_detect_Jpeaks_save_path.text()}")
|
||||
self.msgBox.setIcon(QMessageBox.Information)
|
||||
self.msgBox.exec()
|
||||
else:
|
||||
self.textBrowser_update(f"提示:保存操作取消")
|
||||
else:
|
||||
self.textBrowser_update("错误:保存路径输入有误,请检查后重新执行保存")
|
||||
self.msgBox.setText("保存路径输入有误,请检查后重新执行保存")
|
||||
self.msgBox.setIcon(QMessageBox.Information)
|
||||
self.msgBox.exec()
|
||||
else:
|
||||
error(f"data is None.")
|
||||
self.textBrowser_update("错误:需要保存的数据不存在")
|
||||
self.msgBox.setText("需要保存的数据不存在")
|
||||
self.msgBox.setIcon(QMessageBox.Critical)
|
||||
self.msgBox.exec()
|
||||
|
||||
def slot_btn_backToMenu(self):
|
||||
self.data1 = None
|
||||
self.data2 = None
|
||||
self.data3 = None
|
||||
self.data4 = None
|
||||
self.ecg_seq = None
|
||||
self.R_peak_seq = None
|
||||
self.Interval_seq = None
|
||||
self.RRIV_seq = None
|
||||
self.temp = None
|
||||
self.tableWidget_detect_Rpeaks_signal_parts_list.clearContents()
|
||||
self.groupBox_func_select.setVisible(True)
|
||||
self.groupBox_resample1000Hz.setVisible(False)
|
||||
self.groupBox_detect_Rpeaks.setVisible(False)
|
||||
self.groupBox_detect_Jpeaks.setVisible(False)
|
||||
self.groupBox_info.setVisible(False)
|
||||
self.groupBox_plot.setVisible(False)
|
||||
self.groupBox_detect_Rpeaks_signal_parts_list.setEnabled(False)
|
||||
self.ui_detect_Rpeaks.tableWidget_detect_Rpeaks_signal_parts_list.clearContents()
|
||||
self.ui_detect_Rpeaks.groupBox_detect_Rpeaks_signal_parts_list.setEnabled(False)
|
||||
for i in range(self.verticalLayout_menu.count()):
|
||||
item = self.verticalLayout_menu.itemAt(i)
|
||||
if item.widget():
|
||||
widget = item.widget()
|
||||
if widget.objectName() == "widget_resample1000Hz" or widget.objectName() == "widget_detect_Rpeaks" or widget.objectName() == "widget_detect_Jpeaks":
|
||||
widget.setParent(None)
|
||||
self.verticalLayout_menu.removeWidget(widget)
|
||||
self.verticalLayout_menu.addWidget(self.widget_func)
|
||||
self.figure.clf()
|
||||
|
||||
def textBrowser_update(self, message):
|
||||
self.textBrowser_infoOutput.append(str(datetime.now().strftime("%H:%M:%S")) + ": " + message)
|
||||
self.textBrowser_infoOutput.verticalScrollBar().setValue(self.textBrowser_infoOutput.verticalScrollBar().maximum())
|
||||
|
||||
# 主函数
|
||||
if __name__ == '__main__':
|
||||
|
117
ui/MainWindow.py
Normal file
117
ui/MainWindow.py
Normal file
@ -0,0 +1,117 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
# Form implementation generated from reading ui file 'MainWindow.ui'
|
||||
#
|
||||
# Created by: PyQt5 UI code generator 5.15.9
|
||||
#
|
||||
# WARNING: Any manual changes made to this file will be lost when pyuic5 is
|
||||
# run again. Do not edit this file unless you know what you are doing.
|
||||
|
||||
|
||||
from PyQt5 import QtCore, QtGui, QtWidgets
|
||||
|
||||
|
||||
class Ui_MainWindow(object):
|
||||
def setupUi(self, MainWindow):
|
||||
MainWindow.setObjectName("MainWindow")
|
||||
MainWindow.setEnabled(True)
|
||||
MainWindow.resize(1920, 1080)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(MainWindow.sizePolicy().hasHeightForWidth())
|
||||
MainWindow.setSizePolicy(sizePolicy)
|
||||
self.centralwidget = QtWidgets.QWidget(MainWindow)
|
||||
self.centralwidget.setObjectName("centralwidget")
|
||||
self.gridLayout = QtWidgets.QGridLayout(self.centralwidget)
|
||||
self.gridLayout.setObjectName("gridLayout")
|
||||
self.verticalLayout_right = QtWidgets.QVBoxLayout()
|
||||
self.verticalLayout_right.setObjectName("verticalLayout_right")
|
||||
self.groupBox_plot = QtWidgets.QGroupBox(self.centralwidget)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("黑体")
|
||||
font.setPointSize(10)
|
||||
self.groupBox_plot.setFont(font)
|
||||
self.groupBox_plot.setObjectName("groupBox_plot")
|
||||
self.gridLayout_3 = QtWidgets.QGridLayout(self.groupBox_plot)
|
||||
self.gridLayout_3.setObjectName("gridLayout_3")
|
||||
self.verticalLayout_canvas = QtWidgets.QVBoxLayout()
|
||||
self.verticalLayout_canvas.setObjectName("verticalLayout_canvas")
|
||||
self.gridLayout_3.addLayout(self.verticalLayout_canvas, 0, 0, 1, 1)
|
||||
self.verticalLayout_right.addWidget(self.groupBox_plot)
|
||||
self.gridLayout.addLayout(self.verticalLayout_right, 0, 2, 1, 1)
|
||||
self.verticalLayout_left = QtWidgets.QVBoxLayout()
|
||||
self.verticalLayout_left.setObjectName("verticalLayout_left")
|
||||
self.verticalLayout_menu = QtWidgets.QVBoxLayout()
|
||||
self.verticalLayout_menu.setObjectName("verticalLayout_menu")
|
||||
self.verticalLayout_left.addLayout(self.verticalLayout_menu)
|
||||
self.groupBox_info = QtWidgets.QGroupBox(self.centralwidget)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.groupBox_info.sizePolicy().hasHeightForWidth())
|
||||
self.groupBox_info.setSizePolicy(sizePolicy)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("黑体")
|
||||
font.setPointSize(10)
|
||||
self.groupBox_info.setFont(font)
|
||||
self.groupBox_info.setObjectName("groupBox_info")
|
||||
self.gridLayout_66 = QtWidgets.QGridLayout(self.groupBox_info)
|
||||
self.gridLayout_66.setObjectName("gridLayout_66")
|
||||
self.textBrowser_infoOutput = QtWidgets.QTextBrowser(self.groupBox_info)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("黑体")
|
||||
font.setPointSize(10)
|
||||
self.textBrowser_infoOutput.setFont(font)
|
||||
self.textBrowser_infoOutput.setObjectName("textBrowser_infoOutput")
|
||||
self.gridLayout_66.addWidget(self.textBrowser_infoOutput, 0, 0, 2, 2)
|
||||
self.gridLayout_66.setColumnStretch(0, 1)
|
||||
self.gridLayout_66.setRowStretch(0, 4)
|
||||
self.gridLayout_66.setRowStretch(1, 1)
|
||||
self.verticalLayout_left.addWidget(self.groupBox_info)
|
||||
self.pushButton_backToMenu = QtWidgets.QPushButton(self.centralwidget)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Preferred)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.pushButton_backToMenu.sizePolicy().hasHeightForWidth())
|
||||
self.pushButton_backToMenu.setSizePolicy(sizePolicy)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("黑体")
|
||||
font.setPointSize(14)
|
||||
self.pushButton_backToMenu.setFont(font)
|
||||
self.pushButton_backToMenu.setObjectName("pushButton_backToMenu")
|
||||
self.verticalLayout_left.addWidget(self.pushButton_backToMenu)
|
||||
self.verticalLayout_left.setStretch(0, 16)
|
||||
self.verticalLayout_left.setStretch(1, 4)
|
||||
self.verticalLayout_left.setStretch(2, 1)
|
||||
self.gridLayout.addLayout(self.verticalLayout_left, 0, 1, 1, 1)
|
||||
self.gridLayout.setColumnStretch(1, 4)
|
||||
self.gridLayout.setColumnStretch(2, 20)
|
||||
MainWindow.setCentralWidget(self.centralwidget)
|
||||
self.statusBar = QtWidgets.QStatusBar(MainWindow)
|
||||
self.statusBar.setObjectName("statusBar")
|
||||
MainWindow.setStatusBar(self.statusBar)
|
||||
self.action_selectPath = QtWidgets.QAction(MainWindow)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("黑体")
|
||||
font.setPointSize(14)
|
||||
self.action_selectPath.setFont(font)
|
||||
self.action_selectPath.setObjectName("action_selectPath")
|
||||
self.action = QtWidgets.QAction(MainWindow)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("黑体")
|
||||
font.setPointSize(14)
|
||||
self.action.setFont(font)
|
||||
self.action.setObjectName("action")
|
||||
|
||||
self.retranslateUi(MainWindow)
|
||||
QtCore.QMetaObject.connectSlotsByName(MainWindow)
|
||||
|
||||
def retranslateUi(self, MainWindow):
|
||||
_translate = QtCore.QCoreApplication.translate
|
||||
MainWindow.setWindowTitle(_translate("MainWindow", "Heartbeat_Annotation"))
|
||||
self.groupBox_plot.setTitle(_translate("MainWindow", "绘图区"))
|
||||
self.groupBox_info.setTitle(_translate("MainWindow", "信息"))
|
||||
self.pushButton_backToMenu.setText(_translate("MainWindow", "返回主菜单"))
|
||||
self.action_selectPath.setText(_translate("MainWindow", "数据路径选择"))
|
||||
self.action.setText(_translate("MainWindow", "加载存档"))
|
134
ui/MainWindow.ui
Normal file
134
ui/MainWindow.ui
Normal file
@ -0,0 +1,134 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>MainWindow</class>
|
||||
<widget class="QMainWindow" name="MainWindow">
|
||||
<property name="enabled">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>1920</width>
|
||||
<height>1080</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>Heartbeat_Annotation</string>
|
||||
</property>
|
||||
<widget class="QWidget" name="centralwidget">
|
||||
<layout class="QGridLayout" name="gridLayout" columnstretch="0,4,20">
|
||||
<item row="0" column="2">
|
||||
<layout class="QVBoxLayout" name="verticalLayout_right" stretch="0">
|
||||
<item>
|
||||
<widget class="QGroupBox" name="groupBox_plot">
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>黑体</family>
|
||||
<pointsize>10</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string>绘图区</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout_3">
|
||||
<item row="0" column="0">
|
||||
<layout class="QVBoxLayout" name="verticalLayout_canvas"/>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<layout class="QVBoxLayout" name="verticalLayout_left" stretch="16,4,1">
|
||||
<item>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_menu"/>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QGroupBox" name="groupBox_info">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>黑体</family>
|
||||
<pointsize>10</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string>信息</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout_66" rowstretch="4,1" columnstretch="1,0">
|
||||
<item row="0" column="0" rowspan="2" colspan="2">
|
||||
<widget class="QTextBrowser" name="textBrowser_infoOutput">
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>黑体</family>
|
||||
<pointsize>10</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="pushButton_backToMenu">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Minimum" vsizetype="Preferred">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>黑体</family>
|
||||
<pointsize>14</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>返回主菜单</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<widget class="QStatusBar" name="statusBar"/>
|
||||
<action name="action_selectPath">
|
||||
<property name="text">
|
||||
<string>数据路径选择</string>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>黑体</family>
|
||||
<pointsize>14</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
</action>
|
||||
<action name="action">
|
||||
<property name="text">
|
||||
<string>加载存档</string>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>黑体</family>
|
||||
<pointsize>14</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
</action>
|
||||
</widget>
|
||||
<resources/>
|
||||
<connections/>
|
||||
</ui>
|
402
ui/widget_detect_Jpeaks.py
Normal file
402
ui/widget_detect_Jpeaks.py
Normal file
@ -0,0 +1,402 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
# Form implementation generated from reading ui file 'widget_detect_Jpeaks.ui'
|
||||
#
|
||||
# Created by: PyQt5 UI code generator 5.15.9
|
||||
#
|
||||
# WARNING: Any manual changes made to this file will be lost when pyuic5 is
|
||||
# run again. Do not edit this file unless you know what you are doing.
|
||||
|
||||
|
||||
from PyQt5 import QtCore, QtGui, QtWidgets
|
||||
|
||||
|
||||
class Ui_widget_detect_Jpeaks(object):
|
||||
def setupUi(self, widget_detect_Jpeaks):
|
||||
widget_detect_Jpeaks.setObjectName("widget_detect_Jpeaks")
|
||||
widget_detect_Jpeaks.resize(398, 893)
|
||||
self.gridLayout = QtWidgets.QGridLayout(widget_detect_Jpeaks)
|
||||
self.gridLayout.setObjectName("gridLayout")
|
||||
self.groupBox_detect_Jpeaks = QtWidgets.QGroupBox(widget_detect_Jpeaks)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.groupBox_detect_Jpeaks.sizePolicy().hasHeightForWidth())
|
||||
self.groupBox_detect_Jpeaks.setSizePolicy(sizePolicy)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("黑体")
|
||||
font.setPointSize(10)
|
||||
self.groupBox_detect_Jpeaks.setFont(font)
|
||||
self.groupBox_detect_Jpeaks.setObjectName("groupBox_detect_Jpeaks")
|
||||
self.gridLayout_69 = QtWidgets.QGridLayout(self.groupBox_detect_Jpeaks)
|
||||
self.gridLayout_69.setObjectName("gridLayout_69")
|
||||
self.pushButton_detect_Jpeaks_save = QtWidgets.QPushButton(self.groupBox_detect_Jpeaks)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Preferred)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.pushButton_detect_Jpeaks_save.sizePolicy().hasHeightForWidth())
|
||||
self.pushButton_detect_Jpeaks_save.setSizePolicy(sizePolicy)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("黑体")
|
||||
font.setPointSize(14)
|
||||
self.pushButton_detect_Jpeaks_save.setFont(font)
|
||||
self.pushButton_detect_Jpeaks_save.setObjectName("pushButton_detect_Jpeaks_save")
|
||||
self.gridLayout_69.addWidget(self.pushButton_detect_Jpeaks_save, 4, 1, 1, 1)
|
||||
self.groupBox_detect_Jpeaks_inputFile_check = QtWidgets.QGroupBox(self.groupBox_detect_Jpeaks)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.groupBox_detect_Jpeaks_inputFile_check.sizePolicy().hasHeightForWidth())
|
||||
self.groupBox_detect_Jpeaks_inputFile_check.setSizePolicy(sizePolicy)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("黑体")
|
||||
font.setPointSize(10)
|
||||
self.groupBox_detect_Jpeaks_inputFile_check.setFont(font)
|
||||
self.groupBox_detect_Jpeaks_inputFile_check.setObjectName("groupBox_detect_Jpeaks_inputFile_check")
|
||||
self.gridLayout_75 = QtWidgets.QGridLayout(self.groupBox_detect_Jpeaks_inputFile_check)
|
||||
self.gridLayout_75.setObjectName("gridLayout_75")
|
||||
self.label_15 = QtWidgets.QLabel(self.groupBox_detect_Jpeaks_inputFile_check)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("黑体")
|
||||
font.setPointSize(14)
|
||||
self.label_15.setFont(font)
|
||||
self.label_15.setObjectName("label_15")
|
||||
self.gridLayout_75.addWidget(self.label_15, 2, 0, 1, 1)
|
||||
self.lineEdit_detect_Jpeaks_DSbcg_sig_1000hz3_path = QtWidgets.QLineEdit(self.groupBox_detect_Jpeaks_inputFile_check)
|
||||
self.lineEdit_detect_Jpeaks_DSbcg_sig_1000hz3_path.setEnabled(False)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("黑体")
|
||||
font.setPointSize(10)
|
||||
self.lineEdit_detect_Jpeaks_DSbcg_sig_1000hz3_path.setFont(font)
|
||||
self.lineEdit_detect_Jpeaks_DSbcg_sig_1000hz3_path.setObjectName("lineEdit_detect_Jpeaks_DSbcg_sig_1000hz3_path")
|
||||
self.gridLayout_75.addWidget(self.lineEdit_detect_Jpeaks_DSbcg_sig_1000hz3_path, 1, 0, 1, 1)
|
||||
self.lineEdit_detect_Jpeaks_save_path = QtWidgets.QLineEdit(self.groupBox_detect_Jpeaks_inputFile_check)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("黑体")
|
||||
font.setPointSize(10)
|
||||
self.lineEdit_detect_Jpeaks_save_path.setFont(font)
|
||||
self.lineEdit_detect_Jpeaks_save_path.setObjectName("lineEdit_detect_Jpeaks_save_path")
|
||||
self.gridLayout_75.addWidget(self.lineEdit_detect_Jpeaks_save_path, 3, 0, 1, 1)
|
||||
self.label_14 = QtWidgets.QLabel(self.groupBox_detect_Jpeaks_inputFile_check)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("黑体")
|
||||
font.setPointSize(14)
|
||||
self.label_14.setFont(font)
|
||||
self.label_14.setObjectName("label_14")
|
||||
self.gridLayout_75.addWidget(self.label_14, 0, 0, 1, 1)
|
||||
self.gridLayout_69.addWidget(self.groupBox_detect_Jpeaks_inputFile_check, 0, 0, 1, 2)
|
||||
self.pushButton_detect_Jpeaks_view = QtWidgets.QPushButton(self.groupBox_detect_Jpeaks)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Preferred)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.pushButton_detect_Jpeaks_view.sizePolicy().hasHeightForWidth())
|
||||
self.pushButton_detect_Jpeaks_view.setSizePolicy(sizePolicy)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("黑体")
|
||||
font.setPointSize(14)
|
||||
self.pushButton_detect_Jpeaks_view.setFont(font)
|
||||
self.pushButton_detect_Jpeaks_view.setObjectName("pushButton_detect_Jpeaks_view")
|
||||
self.gridLayout_69.addWidget(self.pushButton_detect_Jpeaks_view, 4, 0, 1, 1)
|
||||
self.groupBox_detect_Jpeaks_input_args = QtWidgets.QGroupBox(self.groupBox_detect_Jpeaks)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.groupBox_detect_Jpeaks_input_args.sizePolicy().hasHeightForWidth())
|
||||
self.groupBox_detect_Jpeaks_input_args.setSizePolicy(sizePolicy)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("黑体")
|
||||
font.setPointSize(10)
|
||||
self.groupBox_detect_Jpeaks_input_args.setFont(font)
|
||||
self.groupBox_detect_Jpeaks_input_args.setObjectName("groupBox_detect_Jpeaks_input_args")
|
||||
self.gridLayout_76 = QtWidgets.QGridLayout(self.groupBox_detect_Jpeaks_input_args)
|
||||
self.gridLayout_76.setObjectName("gridLayout_76")
|
||||
self.lineEdit_detect_Jpeaks_peaks_value = QtWidgets.QLineEdit(self.groupBox_detect_Jpeaks_input_args)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Preferred)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.lineEdit_detect_Jpeaks_peaks_value.sizePolicy().hasHeightForWidth())
|
||||
self.lineEdit_detect_Jpeaks_peaks_value.setSizePolicy(sizePolicy)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("黑体")
|
||||
font.setPointSize(14)
|
||||
self.lineEdit_detect_Jpeaks_peaks_value.setFont(font)
|
||||
self.lineEdit_detect_Jpeaks_peaks_value.setPlaceholderText("")
|
||||
self.lineEdit_detect_Jpeaks_peaks_value.setObjectName("lineEdit_detect_Jpeaks_peaks_value")
|
||||
self.gridLayout_76.addWidget(self.lineEdit_detect_Jpeaks_peaks_value, 1, 2, 1, 3)
|
||||
self.radioButton_Fivelayer_Unet_2 = QtWidgets.QRadioButton(self.groupBox_detect_Jpeaks_input_args)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Preferred)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.radioButton_Fivelayer_Unet_2.sizePolicy().hasHeightForWidth())
|
||||
self.radioButton_Fivelayer_Unet_2.setSizePolicy(sizePolicy)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("黑体")
|
||||
font.setPointSize(14)
|
||||
self.radioButton_Fivelayer_Unet_2.setFont(font)
|
||||
self.radioButton_Fivelayer_Unet_2.setObjectName("radioButton_Fivelayer_Unet_2")
|
||||
self.gridLayout_76.addWidget(self.radioButton_Fivelayer_Unet_2, 7, 4, 2, 1)
|
||||
self.label_23 = QtWidgets.QLabel(self.groupBox_detect_Jpeaks_input_args)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.label_23.sizePolicy().hasHeightForWidth())
|
||||
self.label_23.setSizePolicy(sizePolicy)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("黑体")
|
||||
font.setPointSize(14)
|
||||
self.label_23.setFont(font)
|
||||
self.label_23.setObjectName("label_23")
|
||||
self.gridLayout_76.addWidget(self.label_23, 7, 0, 2, 1)
|
||||
self.label_20 = QtWidgets.QLabel(self.groupBox_detect_Jpeaks_input_args)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.label_20.sizePolicy().hasHeightForWidth())
|
||||
self.label_20.setSizePolicy(sizePolicy)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("黑体")
|
||||
font.setPointSize(14)
|
||||
self.label_20.setFont(font)
|
||||
self.label_20.setObjectName("label_20")
|
||||
self.gridLayout_76.addWidget(self.label_20, 6, 0, 1, 5)
|
||||
self.label_21 = QtWidgets.QLabel(self.groupBox_detect_Jpeaks_input_args)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("黑体")
|
||||
font.setPointSize(14)
|
||||
self.label_21.setFont(font)
|
||||
self.label_21.setObjectName("label_21")
|
||||
self.gridLayout_76.addWidget(self.label_21, 4, 0, 1, 2)
|
||||
self.label_16 = QtWidgets.QLabel(self.groupBox_detect_Jpeaks_input_args)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("黑体")
|
||||
font.setPointSize(14)
|
||||
self.label_16.setFont(font)
|
||||
self.label_16.setObjectName("label_16")
|
||||
self.gridLayout_76.addWidget(self.label_16, 0, 0, 1, 2)
|
||||
self.lineEdit_detect_Jpeaks_interval_low = QtWidgets.QLineEdit(self.groupBox_detect_Jpeaks_input_args)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Preferred)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.lineEdit_detect_Jpeaks_interval_low.sizePolicy().hasHeightForWidth())
|
||||
self.lineEdit_detect_Jpeaks_interval_low.setSizePolicy(sizePolicy)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("黑体")
|
||||
font.setPointSize(14)
|
||||
self.lineEdit_detect_Jpeaks_interval_low.setFont(font)
|
||||
self.lineEdit_detect_Jpeaks_interval_low.setPlaceholderText("")
|
||||
self.lineEdit_detect_Jpeaks_interval_low.setObjectName("lineEdit_detect_Jpeaks_interval_low")
|
||||
self.gridLayout_76.addWidget(self.lineEdit_detect_Jpeaks_interval_low, 4, 2, 1, 1)
|
||||
self.lineEdit_detect_Jpeaks_interval_high = QtWidgets.QLineEdit(self.groupBox_detect_Jpeaks_input_args)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Preferred)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.lineEdit_detect_Jpeaks_interval_high.sizePolicy().hasHeightForWidth())
|
||||
self.lineEdit_detect_Jpeaks_interval_high.setSizePolicy(sizePolicy)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("黑体")
|
||||
font.setPointSize(14)
|
||||
self.lineEdit_detect_Jpeaks_interval_high.setFont(font)
|
||||
self.lineEdit_detect_Jpeaks_interval_high.setPlaceholderText("")
|
||||
self.lineEdit_detect_Jpeaks_interval_high.setObjectName("lineEdit_detect_Jpeaks_interval_high")
|
||||
self.gridLayout_76.addWidget(self.lineEdit_detect_Jpeaks_interval_high, 4, 4, 1, 1)
|
||||
self.label_22 = QtWidgets.QLabel(self.groupBox_detect_Jpeaks_input_args)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("黑体")
|
||||
font.setPointSize(14)
|
||||
self.label_22.setFont(font)
|
||||
self.label_22.setObjectName("label_22")
|
||||
self.gridLayout_76.addWidget(self.label_22, 4, 3, 1, 1)
|
||||
self.label_25 = QtWidgets.QLabel(self.groupBox_detect_Jpeaks_input_args)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("黑体")
|
||||
font.setPointSize(14)
|
||||
self.label_25.setFont(font)
|
||||
self.label_25.setWhatsThis("")
|
||||
self.label_25.setObjectName("label_25")
|
||||
self.gridLayout_76.addWidget(self.label_25, 2, 0, 1, 1)
|
||||
self.radioButton_Fivelayer_Unet_1 = QtWidgets.QRadioButton(self.groupBox_detect_Jpeaks_input_args)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Preferred)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.radioButton_Fivelayer_Unet_1.sizePolicy().hasHeightForWidth())
|
||||
self.radioButton_Fivelayer_Unet_1.setSizePolicy(sizePolicy)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("黑体")
|
||||
font.setPointSize(14)
|
||||
self.radioButton_Fivelayer_Unet_1.setFont(font)
|
||||
self.radioButton_Fivelayer_Unet_1.setChecked(True)
|
||||
self.radioButton_Fivelayer_Unet_1.setObjectName("radioButton_Fivelayer_Unet_1")
|
||||
self.gridLayout_76.addWidget(self.radioButton_Fivelayer_Unet_1, 7, 2, 2, 1)
|
||||
self.radioButton_Fivelayer_Lstm_Unet_2 = QtWidgets.QRadioButton(self.groupBox_detect_Jpeaks_input_args)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Preferred)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.radioButton_Fivelayer_Lstm_Unet_2.sizePolicy().hasHeightForWidth())
|
||||
self.radioButton_Fivelayer_Lstm_Unet_2.setSizePolicy(sizePolicy)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("黑体")
|
||||
font.setPointSize(14)
|
||||
self.radioButton_Fivelayer_Lstm_Unet_2.setFont(font)
|
||||
self.radioButton_Fivelayer_Lstm_Unet_2.setObjectName("radioButton_Fivelayer_Lstm_Unet_2")
|
||||
self.gridLayout_76.addWidget(self.radioButton_Fivelayer_Lstm_Unet_2, 9, 4, 1, 1)
|
||||
self.lineEdit_detect_Jpeaks_sampling_rate = QtWidgets.QLineEdit(self.groupBox_detect_Jpeaks_input_args)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Preferred)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.lineEdit_detect_Jpeaks_sampling_rate.sizePolicy().hasHeightForWidth())
|
||||
self.lineEdit_detect_Jpeaks_sampling_rate.setSizePolicy(sizePolicy)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("黑体")
|
||||
font.setPointSize(14)
|
||||
self.lineEdit_detect_Jpeaks_sampling_rate.setFont(font)
|
||||
self.lineEdit_detect_Jpeaks_sampling_rate.setPlaceholderText("")
|
||||
self.lineEdit_detect_Jpeaks_sampling_rate.setObjectName("lineEdit_detect_Jpeaks_sampling_rate")
|
||||
self.gridLayout_76.addWidget(self.lineEdit_detect_Jpeaks_sampling_rate, 0, 2, 1, 3)
|
||||
self.label_17 = QtWidgets.QLabel(self.groupBox_detect_Jpeaks_input_args)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("黑体")
|
||||
font.setPointSize(14)
|
||||
self.label_17.setFont(font)
|
||||
self.label_17.setWhatsThis("")
|
||||
self.label_17.setObjectName("label_17")
|
||||
self.gridLayout_76.addWidget(self.label_17, 1, 0, 1, 2)
|
||||
self.label_24 = QtWidgets.QLabel(self.groupBox_detect_Jpeaks_input_args)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.label_24.sizePolicy().hasHeightForWidth())
|
||||
self.label_24.setSizePolicy(sizePolicy)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("黑体")
|
||||
font.setPointSize(14)
|
||||
self.label_24.setFont(font)
|
||||
self.label_24.setObjectName("label_24")
|
||||
self.gridLayout_76.addWidget(self.label_24, 9, 0, 1, 1)
|
||||
self.radioButton_Fivelayer_Lstm_Unet_1 = QtWidgets.QRadioButton(self.groupBox_detect_Jpeaks_input_args)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Preferred)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.radioButton_Fivelayer_Lstm_Unet_1.sizePolicy().hasHeightForWidth())
|
||||
self.radioButton_Fivelayer_Lstm_Unet_1.setSizePolicy(sizePolicy)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("黑体")
|
||||
font.setPointSize(14)
|
||||
self.radioButton_Fivelayer_Lstm_Unet_1.setFont(font)
|
||||
self.radioButton_Fivelayer_Lstm_Unet_1.setObjectName("radioButton_Fivelayer_Lstm_Unet_1")
|
||||
self.gridLayout_76.addWidget(self.radioButton_Fivelayer_Lstm_Unet_1, 9, 2, 1, 1)
|
||||
self.lineEdit_detect_Jpeaks_amp_value = QtWidgets.QLineEdit(self.groupBox_detect_Jpeaks_input_args)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Preferred)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.lineEdit_detect_Jpeaks_amp_value.sizePolicy().hasHeightForWidth())
|
||||
self.lineEdit_detect_Jpeaks_amp_value.setSizePolicy(sizePolicy)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("黑体")
|
||||
font.setPointSize(14)
|
||||
self.lineEdit_detect_Jpeaks_amp_value.setFont(font)
|
||||
self.lineEdit_detect_Jpeaks_amp_value.setPlaceholderText("")
|
||||
self.lineEdit_detect_Jpeaks_amp_value.setObjectName("lineEdit_detect_Jpeaks_amp_value")
|
||||
self.gridLayout_76.addWidget(self.lineEdit_detect_Jpeaks_amp_value, 2, 2, 1, 3)
|
||||
self.checkBox_useCPU = QtWidgets.QCheckBox(self.groupBox_detect_Jpeaks_input_args)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("黑体")
|
||||
font.setPointSize(14)
|
||||
self.checkBox_useCPU.setFont(font)
|
||||
self.checkBox_useCPU.setObjectName("checkBox_useCPU")
|
||||
self.gridLayout_76.addWidget(self.checkBox_useCPU, 5, 0, 1, 5)
|
||||
self.gridLayout_69.addWidget(self.groupBox_detect_Jpeaks_input_args, 2, 0, 1, 2)
|
||||
self.groupBox_detect_Jpeaks_filter_args = QtWidgets.QGroupBox(self.groupBox_detect_Jpeaks)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.groupBox_detect_Jpeaks_filter_args.sizePolicy().hasHeightForWidth())
|
||||
self.groupBox_detect_Jpeaks_filter_args.setSizePolicy(sizePolicy)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("黑体")
|
||||
font.setPointSize(10)
|
||||
self.groupBox_detect_Jpeaks_filter_args.setFont(font)
|
||||
self.groupBox_detect_Jpeaks_filter_args.setObjectName("groupBox_detect_Jpeaks_filter_args")
|
||||
self.gridLayout_77 = QtWidgets.QGridLayout(self.groupBox_detect_Jpeaks_filter_args)
|
||||
self.gridLayout_77.setObjectName("gridLayout_77")
|
||||
self.label_19 = QtWidgets.QLabel(self.groupBox_detect_Jpeaks_filter_args)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("黑体")
|
||||
font.setPointSize(14)
|
||||
self.label_19.setFont(font)
|
||||
self.label_19.setObjectName("label_19")
|
||||
self.gridLayout_77.addWidget(self.label_19, 0, 2, 1, 1)
|
||||
self.label_18 = QtWidgets.QLabel(self.groupBox_detect_Jpeaks_filter_args)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("黑体")
|
||||
font.setPointSize(14)
|
||||
self.label_18.setFont(font)
|
||||
self.label_18.setObjectName("label_18")
|
||||
self.gridLayout_77.addWidget(self.label_18, 0, 0, 1, 1)
|
||||
self.lineEdit_detect_Jpeaks_bandpass_low = QtWidgets.QLineEdit(self.groupBox_detect_Jpeaks_filter_args)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("黑体")
|
||||
font.setPointSize(14)
|
||||
self.lineEdit_detect_Jpeaks_bandpass_low.setFont(font)
|
||||
self.lineEdit_detect_Jpeaks_bandpass_low.setPlaceholderText("")
|
||||
self.lineEdit_detect_Jpeaks_bandpass_low.setObjectName("lineEdit_detect_Jpeaks_bandpass_low")
|
||||
self.gridLayout_77.addWidget(self.lineEdit_detect_Jpeaks_bandpass_low, 0, 1, 1, 1)
|
||||
self.lineEdit_detect_Jpeaks_bandpass_high = QtWidgets.QLineEdit(self.groupBox_detect_Jpeaks_filter_args)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("黑体")
|
||||
font.setPointSize(14)
|
||||
self.lineEdit_detect_Jpeaks_bandpass_high.setFont(font)
|
||||
self.lineEdit_detect_Jpeaks_bandpass_high.setPlaceholderText("")
|
||||
self.lineEdit_detect_Jpeaks_bandpass_high.setObjectName("lineEdit_detect_Jpeaks_bandpass_high")
|
||||
self.gridLayout_77.addWidget(self.lineEdit_detect_Jpeaks_bandpass_high, 0, 3, 1, 1)
|
||||
self.gridLayout_69.addWidget(self.groupBox_detect_Jpeaks_filter_args, 1, 0, 1, 2)
|
||||
spacerItem = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
|
||||
self.gridLayout_69.addItem(spacerItem, 3, 0, 1, 2)
|
||||
self.gridLayout_69.setColumnStretch(0, 1)
|
||||
self.gridLayout_69.setColumnStretch(1, 1)
|
||||
self.gridLayout_69.setRowStretch(0, 2)
|
||||
self.gridLayout_69.setRowStretch(1, 1)
|
||||
self.gridLayout_69.setRowStretch(2, 5)
|
||||
self.gridLayout_69.setRowStretch(3, 3)
|
||||
self.gridLayout_69.setRowStretch(4, 1)
|
||||
self.gridLayout.addWidget(self.groupBox_detect_Jpeaks, 0, 0, 1, 1)
|
||||
|
||||
self.retranslateUi(widget_detect_Jpeaks)
|
||||
QtCore.QMetaObject.connectSlotsByName(widget_detect_Jpeaks)
|
||||
|
||||
def retranslateUi(self, widget_detect_Jpeaks):
|
||||
_translate = QtCore.QCoreApplication.translate
|
||||
widget_detect_Jpeaks.setWindowTitle(_translate("widget_detect_Jpeaks", "Form"))
|
||||
self.groupBox_detect_Jpeaks.setTitle(_translate("widget_detect_Jpeaks", "BCG的J峰提取"))
|
||||
self.pushButton_detect_Jpeaks_save.setText(_translate("widget_detect_Jpeaks", "保存结果"))
|
||||
self.groupBox_detect_Jpeaks_inputFile_check.setTitle(_translate("widget_detect_Jpeaks", "程序识别到的文件路径"))
|
||||
self.label_15.setText(_translate("widget_detect_Jpeaks", "保存路径"))
|
||||
self.lineEdit_detect_Jpeaks_DSbcg_sig_1000hz3_path.setPlaceholderText(_translate("widget_detect_Jpeaks", "DSbcg_sig_1000hz3.txt文件路径"))
|
||||
self.lineEdit_detect_Jpeaks_save_path.setPlaceholderText(_translate("widget_detect_Jpeaks", "文件保存路径"))
|
||||
self.label_14.setText(_translate("widget_detect_Jpeaks", "DSbcg_sig_1000hz3.txt"))
|
||||
self.pushButton_detect_Jpeaks_view.setText(_translate("widget_detect_Jpeaks", "查看结果"))
|
||||
self.groupBox_detect_Jpeaks_input_args.setTitle(_translate("widget_detect_Jpeaks", "<J峰提取>参数输入"))
|
||||
self.lineEdit_detect_Jpeaks_peaks_value.setText(_translate("widget_detect_Jpeaks", "100"))
|
||||
self.radioButton_Fivelayer_Unet_2.setText(_translate("widget_detect_Jpeaks", "2"))
|
||||
self.label_23.setText(_translate("widget_detect_Jpeaks", "Fivelayer_Unet"))
|
||||
self.label_20.setText(_translate("widget_detect_Jpeaks", "J峰检测方法选择(建议优先选择1)"))
|
||||
self.label_21.setText(_translate("widget_detect_Jpeaks", "间期下限和上限阈值"))
|
||||
self.label_16.setText(_translate("widget_detect_Jpeaks", "信号采样率(Hz)"))
|
||||
self.lineEdit_detect_Jpeaks_interval_low.setText(_translate("widget_detect_Jpeaks", "50"))
|
||||
self.lineEdit_detect_Jpeaks_interval_high.setText(_translate("widget_detect_Jpeaks", "140"))
|
||||
self.label_22.setText(_translate("widget_detect_Jpeaks", "~"))
|
||||
self.label_25.setStatusTip(_translate("widget_detect_Jpeaks", "信号幅值调整参数:信号最高幅值尽量在100~250之间,该值为原始信号幅度的倍数"))
|
||||
self.label_25.setText(_translate("widget_detect_Jpeaks", "信号幅值调整参数"))
|
||||
self.radioButton_Fivelayer_Unet_1.setText(_translate("widget_detect_Jpeaks", "1"))
|
||||
self.radioButton_Fivelayer_Lstm_Unet_2.setText(_translate("widget_detect_Jpeaks", "2"))
|
||||
self.lineEdit_detect_Jpeaks_sampling_rate.setText(_translate("widget_detect_Jpeaks", "1000"))
|
||||
self.label_17.setStatusTip(_translate("widget_detect_Jpeaks", "寻峰阈值(个):找左右若干个点的最高峰"))
|
||||
self.label_17.setText(_translate("widget_detect_Jpeaks", "寻峰阈值(个)"))
|
||||
self.label_24.setText(_translate("widget_detect_Jpeaks", "Fivelayer_Lstm_Unet"))
|
||||
self.radioButton_Fivelayer_Lstm_Unet_1.setText(_translate("widget_detect_Jpeaks", "1"))
|
||||
self.lineEdit_detect_Jpeaks_amp_value.setText(_translate("widget_detect_Jpeaks", "5"))
|
||||
self.checkBox_useCPU.setText(_translate("widget_detect_Jpeaks", "强制使用CPU"))
|
||||
self.groupBox_detect_Jpeaks_filter_args.setTitle(_translate("widget_detect_Jpeaks", "BCG信号滤波参数输入"))
|
||||
self.label_19.setText(_translate("widget_detect_Jpeaks", "~"))
|
||||
self.label_18.setText(_translate("widget_detect_Jpeaks", "带通滤波截止频率(Hz)"))
|
||||
self.lineEdit_detect_Jpeaks_bandpass_low.setText(_translate("widget_detect_Jpeaks", "2"))
|
||||
self.lineEdit_detect_Jpeaks_bandpass_high.setText(_translate("widget_detect_Jpeaks", "10"))
|
605
ui/widget_detect_Jpeaks.ui
Normal file
605
ui/widget_detect_Jpeaks.ui
Normal file
@ -0,0 +1,605 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>widget_detect_Jpeaks</class>
|
||||
<widget class="QWidget" name="widget_detect_Jpeaks">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>398</width>
|
||||
<height>893</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>Form</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout">
|
||||
<item row="0" column="0">
|
||||
<widget class="QGroupBox" name="groupBox_detect_Jpeaks">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>黑体</family>
|
||||
<pointsize>10</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string>BCG的J峰提取</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout_69" rowstretch="2,1,5,3,1" columnstretch="1,1">
|
||||
<item row="4" column="1">
|
||||
<widget class="QPushButton" name="pushButton_detect_Jpeaks_save">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Minimum" vsizetype="Preferred">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>黑体</family>
|
||||
<pointsize>14</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>保存结果</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="0" colspan="2">
|
||||
<widget class="QGroupBox" name="groupBox_detect_Jpeaks_inputFile_check">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>黑体</family>
|
||||
<pointsize>10</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string>程序识别到的文件路径</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout_75" rowstretch="0,0,0,0" columnstretch="0">
|
||||
<item row="2" column="0">
|
||||
<widget class="QLabel" name="label_15">
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>黑体</family>
|
||||
<pointsize>14</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>保存路径</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QLineEdit" name="lineEdit_detect_Jpeaks_DSbcg_sig_1000hz3_path">
|
||||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>黑体</family>
|
||||
<pointsize>10</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="placeholderText">
|
||||
<string>DSbcg_sig_1000hz3.txt文件路径</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="0">
|
||||
<widget class="QLineEdit" name="lineEdit_detect_Jpeaks_save_path">
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>黑体</family>
|
||||
<pointsize>10</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="placeholderText">
|
||||
<string>文件保存路径</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="label_14">
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>黑体</family>
|
||||
<pointsize>14</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>DSbcg_sig_1000hz3.txt</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="0">
|
||||
<widget class="QPushButton" name="pushButton_detect_Jpeaks_view">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Minimum" vsizetype="Preferred">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>黑体</family>
|
||||
<pointsize>14</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>查看结果</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="0" colspan="2">
|
||||
<widget class="QGroupBox" name="groupBox_detect_Jpeaks_input_args">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>黑体</family>
|
||||
<pointsize>10</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string><J峰提取>参数输入</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout_76" columnstretch="0,0,0,0,0">
|
||||
<item row="1" column="2" colspan="3">
|
||||
<widget class="QLineEdit" name="lineEdit_detect_Jpeaks_peaks_value">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Expanding" vsizetype="Preferred">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>黑体</family>
|
||||
<pointsize>14</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>100</string>
|
||||
</property>
|
||||
<property name="placeholderText">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="7" column="4" rowspan="2">
|
||||
<widget class="QRadioButton" name="radioButton_Fivelayer_Unet_2">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Minimum" vsizetype="Preferred">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>黑体</family>
|
||||
<pointsize>14</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>2</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="7" column="0" rowspan="2">
|
||||
<widget class="QLabel" name="label_23">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>黑体</family>
|
||||
<pointsize>14</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Fivelayer_Unet</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="6" column="0" colspan="5">
|
||||
<widget class="QLabel" name="label_20">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>黑体</family>
|
||||
<pointsize>14</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>J峰检测方法选择(建议优先选择1)</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="0" colspan="2">
|
||||
<widget class="QLabel" name="label_21">
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>黑体</family>
|
||||
<pointsize>14</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>间期下限和上限阈值</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="0" colspan="2">
|
||||
<widget class="QLabel" name="label_16">
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>黑体</family>
|
||||
<pointsize>14</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>信号采样率(Hz)</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="2">
|
||||
<widget class="QLineEdit" name="lineEdit_detect_Jpeaks_interval_low">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Expanding" vsizetype="Preferred">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>黑体</family>
|
||||
<pointsize>14</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>50</string>
|
||||
</property>
|
||||
<property name="placeholderText">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="4">
|
||||
<widget class="QLineEdit" name="lineEdit_detect_Jpeaks_interval_high">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Expanding" vsizetype="Preferred">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>黑体</family>
|
||||
<pointsize>14</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>140</string>
|
||||
</property>
|
||||
<property name="placeholderText">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="3">
|
||||
<widget class="QLabel" name="label_22">
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>黑体</family>
|
||||
<pointsize>14</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>~</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="0">
|
||||
<widget class="QLabel" name="label_25">
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>黑体</family>
|
||||
<pointsize>14</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>信号幅值调整参数:信号最高幅值尽量在100~250之间,该值为原始信号幅度的倍数</string>
|
||||
</property>
|
||||
<property name="whatsThis">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>信号幅值调整参数</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="7" column="2" rowspan="2">
|
||||
<widget class="QRadioButton" name="radioButton_Fivelayer_Unet_1">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Minimum" vsizetype="Preferred">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>黑体</family>
|
||||
<pointsize>14</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>1</string>
|
||||
</property>
|
||||
<property name="checked">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="9" column="4">
|
||||
<widget class="QRadioButton" name="radioButton_Fivelayer_Lstm_Unet_2">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Minimum" vsizetype="Preferred">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>黑体</family>
|
||||
<pointsize>14</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>2</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="2" colspan="3">
|
||||
<widget class="QLineEdit" name="lineEdit_detect_Jpeaks_sampling_rate">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Expanding" vsizetype="Preferred">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>黑体</family>
|
||||
<pointsize>14</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>1000</string>
|
||||
</property>
|
||||
<property name="placeholderText">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0" colspan="2">
|
||||
<widget class="QLabel" name="label_17">
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>黑体</family>
|
||||
<pointsize>14</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>寻峰阈值(个):找左右若干个点的最高峰</string>
|
||||
</property>
|
||||
<property name="whatsThis">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>寻峰阈值(个)</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="9" column="0">
|
||||
<widget class="QLabel" name="label_24">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>黑体</family>
|
||||
<pointsize>14</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Fivelayer_Lstm_Unet</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="9" column="2">
|
||||
<widget class="QRadioButton" name="radioButton_Fivelayer_Lstm_Unet_1">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Minimum" vsizetype="Preferred">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>黑体</family>
|
||||
<pointsize>14</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>1</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="2" colspan="3">
|
||||
<widget class="QLineEdit" name="lineEdit_detect_Jpeaks_amp_value">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Expanding" vsizetype="Preferred">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>黑体</family>
|
||||
<pointsize>14</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>5</string>
|
||||
</property>
|
||||
<property name="placeholderText">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="5" column="0" colspan="5">
|
||||
<widget class="QCheckBox" name="checkBox_useCPU">
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>黑体</family>
|
||||
<pointsize>14</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>强制使用CPU</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0" colspan="2">
|
||||
<widget class="QGroupBox" name="groupBox_detect_Jpeaks_filter_args">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>黑体</family>
|
||||
<pointsize>10</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string>BCG信号滤波参数输入</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout_77" rowstretch="0" columnstretch="0,0,0,0">
|
||||
<item row="0" column="2">
|
||||
<widget class="QLabel" name="label_19">
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>黑体</family>
|
||||
<pointsize>14</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>~</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="label_18">
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>黑体</family>
|
||||
<pointsize>14</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>带通滤波截止频率(Hz)</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<widget class="QLineEdit" name="lineEdit_detect_Jpeaks_bandpass_low">
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>黑体</family>
|
||||
<pointsize>14</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>2</string>
|
||||
</property>
|
||||
<property name="placeholderText">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="3">
|
||||
<widget class="QLineEdit" name="lineEdit_detect_Jpeaks_bandpass_high">
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>黑体</family>
|
||||
<pointsize>14</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>10</string>
|
||||
</property>
|
||||
<property name="placeholderText">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="0" colspan="2">
|
||||
<spacer name="verticalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>40</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<resources/>
|
||||
<connections/>
|
||||
</ui>
|
332
ui/widget_detect_Rpeaks.py
Normal file
332
ui/widget_detect_Rpeaks.py
Normal file
@ -0,0 +1,332 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
# Form implementation generated from reading ui file 'widget_detect_Rpeaks.ui'
|
||||
#
|
||||
# Created by: PyQt5 UI code generator 5.15.9
|
||||
#
|
||||
# WARNING: Any manual changes made to this file will be lost when pyuic5 is
|
||||
# run again. Do not edit this file unless you know what you are doing.
|
||||
|
||||
|
||||
from PyQt5 import QtCore, QtGui, QtWidgets
|
||||
|
||||
|
||||
class Ui_widget_detect_Rpeaks(object):
|
||||
def setupUi(self, widget_detect_Rpeaks):
|
||||
widget_detect_Rpeaks.setObjectName("widget_detect_Rpeaks")
|
||||
widget_detect_Rpeaks.resize(386, 957)
|
||||
self.gridLayout = QtWidgets.QGridLayout(widget_detect_Rpeaks)
|
||||
self.gridLayout.setObjectName("gridLayout")
|
||||
self.groupBox_detect_Rpeaks = QtWidgets.QGroupBox(widget_detect_Rpeaks)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.groupBox_detect_Rpeaks.sizePolicy().hasHeightForWidth())
|
||||
self.groupBox_detect_Rpeaks.setSizePolicy(sizePolicy)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("黑体")
|
||||
font.setPointSize(10)
|
||||
self.groupBox_detect_Rpeaks.setFont(font)
|
||||
self.groupBox_detect_Rpeaks.setObjectName("groupBox_detect_Rpeaks")
|
||||
self.gridLayout_67 = QtWidgets.QGridLayout(self.groupBox_detect_Rpeaks)
|
||||
self.gridLayout_67.setObjectName("gridLayout_67")
|
||||
self.groupBox_detect_Rpeaks_signal_parts_list = QtWidgets.QGroupBox(self.groupBox_detect_Rpeaks)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.groupBox_detect_Rpeaks_signal_parts_list.sizePolicy().hasHeightForWidth())
|
||||
self.groupBox_detect_Rpeaks_signal_parts_list.setSizePolicy(sizePolicy)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("黑体")
|
||||
font.setPointSize(10)
|
||||
self.groupBox_detect_Rpeaks_signal_parts_list.setFont(font)
|
||||
self.groupBox_detect_Rpeaks_signal_parts_list.setObjectName("groupBox_detect_Rpeaks_signal_parts_list")
|
||||
self.gridLayout_74 = QtWidgets.QGridLayout(self.groupBox_detect_Rpeaks_signal_parts_list)
|
||||
self.gridLayout_74.setObjectName("gridLayout_74")
|
||||
self.pushButton_detect_Rpeaks_left = QtWidgets.QPushButton(self.groupBox_detect_Rpeaks_signal_parts_list)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Preferred)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.pushButton_detect_Rpeaks_left.sizePolicy().hasHeightForWidth())
|
||||
self.pushButton_detect_Rpeaks_left.setSizePolicy(sizePolicy)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("黑体")
|
||||
font.setPointSize(14)
|
||||
self.pushButton_detect_Rpeaks_left.setFont(font)
|
||||
self.pushButton_detect_Rpeaks_left.setObjectName("pushButton_detect_Rpeaks_left")
|
||||
self.gridLayout_74.addWidget(self.pushButton_detect_Rpeaks_left, 0, 2, 1, 1)
|
||||
self.pushButton_detect_Rpeaks_right = QtWidgets.QPushButton(self.groupBox_detect_Rpeaks_signal_parts_list)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Preferred)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.pushButton_detect_Rpeaks_right.sizePolicy().hasHeightForWidth())
|
||||
self.pushButton_detect_Rpeaks_right.setSizePolicy(sizePolicy)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("黑体")
|
||||
font.setPointSize(14)
|
||||
self.pushButton_detect_Rpeaks_right.setFont(font)
|
||||
self.pushButton_detect_Rpeaks_right.setObjectName("pushButton_detect_Rpeaks_right")
|
||||
self.gridLayout_74.addWidget(self.pushButton_detect_Rpeaks_right, 1, 2, 1, 1)
|
||||
self.tableWidget_detect_Rpeaks_signal_parts_list = QtWidgets.QTableWidget(self.groupBox_detect_Rpeaks_signal_parts_list)
|
||||
self.tableWidget_detect_Rpeaks_signal_parts_list.setColumnCount(1)
|
||||
self.tableWidget_detect_Rpeaks_signal_parts_list.setObjectName("tableWidget_detect_Rpeaks_signal_parts_list")
|
||||
self.tableWidget_detect_Rpeaks_signal_parts_list.setRowCount(0)
|
||||
self.tableWidget_detect_Rpeaks_signal_parts_list.verticalHeader().setVisible(False)
|
||||
self.gridLayout_74.addWidget(self.tableWidget_detect_Rpeaks_signal_parts_list, 0, 0, 2, 2)
|
||||
self.gridLayout_74.setColumnStretch(0, 1)
|
||||
self.gridLayout_74.setColumnStretch(1, 1)
|
||||
self.gridLayout_74.setColumnStretch(2, 1)
|
||||
self.gridLayout_67.addWidget(self.groupBox_detect_Rpeaks_signal_parts_list, 2, 0, 1, 2)
|
||||
self.groupBox_detect_Rpeaks_input_args = QtWidgets.QGroupBox(self.groupBox_detect_Rpeaks)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.groupBox_detect_Rpeaks_input_args.sizePolicy().hasHeightForWidth())
|
||||
self.groupBox_detect_Rpeaks_input_args.setSizePolicy(sizePolicy)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("黑体")
|
||||
font.setPointSize(10)
|
||||
self.groupBox_detect_Rpeaks_input_args.setFont(font)
|
||||
self.groupBox_detect_Rpeaks_input_args.setObjectName("groupBox_detect_Rpeaks_input_args")
|
||||
self.gridLayout_73 = QtWidgets.QGridLayout(self.groupBox_detect_Rpeaks_input_args)
|
||||
self.gridLayout_73.setObjectName("gridLayout_73")
|
||||
self.radioButton_detector_method_Wt = QtWidgets.QRadioButton(self.groupBox_detect_Rpeaks_input_args)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("黑体")
|
||||
font.setPointSize(14)
|
||||
self.radioButton_detector_method_Wt.setFont(font)
|
||||
self.radioButton_detector_method_Wt.setObjectName("radioButton_detector_method_Wt")
|
||||
self.gridLayout_73.addWidget(self.radioButton_detector_method_Wt, 6, 0, 1, 1)
|
||||
self.label_9 = QtWidgets.QLabel(self.groupBox_detect_Rpeaks_input_args)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("黑体")
|
||||
font.setPointSize(14)
|
||||
self.label_9.setFont(font)
|
||||
self.label_9.setObjectName("label_9")
|
||||
self.gridLayout_73.addWidget(self.label_9, 0, 0, 1, 1)
|
||||
self.lineEdit_detect_Rpeaks_bandpass_low = QtWidgets.QLineEdit(self.groupBox_detect_Rpeaks_input_args)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("黑体")
|
||||
font.setPointSize(14)
|
||||
self.lineEdit_detect_Rpeaks_bandpass_low.setFont(font)
|
||||
self.lineEdit_detect_Rpeaks_bandpass_low.setPlaceholderText("")
|
||||
self.lineEdit_detect_Rpeaks_bandpass_low.setObjectName("lineEdit_detect_Rpeaks_bandpass_low")
|
||||
self.gridLayout_73.addWidget(self.lineEdit_detect_Rpeaks_bandpass_low, 2, 1, 1, 1)
|
||||
self.radioButton_detector_method_ta = QtWidgets.QRadioButton(self.groupBox_detect_Rpeaks_input_args)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("黑体")
|
||||
font.setPointSize(14)
|
||||
self.radioButton_detector_method_ta.setFont(font)
|
||||
self.radioButton_detector_method_ta.setObjectName("radioButton_detector_method_ta")
|
||||
self.gridLayout_73.addWidget(self.radioButton_detector_method_ta, 4, 1, 1, 3)
|
||||
self.label_11 = QtWidgets.QLabel(self.groupBox_detect_Rpeaks_input_args)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("黑体")
|
||||
font.setPointSize(14)
|
||||
self.label_11.setFont(font)
|
||||
self.label_11.setObjectName("label_11")
|
||||
self.gridLayout_73.addWidget(self.label_11, 1, 0, 1, 1)
|
||||
self.radioButton_detector_method_Hamilton = QtWidgets.QRadioButton(self.groupBox_detect_Rpeaks_input_args)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("黑体")
|
||||
font.setPointSize(14)
|
||||
self.radioButton_detector_method_Hamilton.setFont(font)
|
||||
self.radioButton_detector_method_Hamilton.setObjectName("radioButton_detector_method_Hamilton")
|
||||
self.gridLayout_73.addWidget(self.radioButton_detector_method_Hamilton, 6, 1, 1, 3)
|
||||
self.lineEdit_detect_Rpeaks_sampling_rate = QtWidgets.QLineEdit(self.groupBox_detect_Rpeaks_input_args)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("黑体")
|
||||
font.setPointSize(14)
|
||||
self.lineEdit_detect_Rpeaks_sampling_rate.setFont(font)
|
||||
self.lineEdit_detect_Rpeaks_sampling_rate.setPlaceholderText("")
|
||||
self.lineEdit_detect_Rpeaks_sampling_rate.setObjectName("lineEdit_detect_Rpeaks_sampling_rate")
|
||||
self.gridLayout_73.addWidget(self.lineEdit_detect_Rpeaks_sampling_rate, 0, 1, 1, 3)
|
||||
self.label_12 = QtWidgets.QLabel(self.groupBox_detect_Rpeaks_input_args)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("黑体")
|
||||
font.setPointSize(14)
|
||||
self.label_12.setFont(font)
|
||||
self.label_12.setObjectName("label_12")
|
||||
self.gridLayout_73.addWidget(self.label_12, 2, 0, 1, 1)
|
||||
self.radioButton_detector_method_pt = QtWidgets.QRadioButton(self.groupBox_detect_Rpeaks_input_args)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("黑体")
|
||||
font.setPointSize(14)
|
||||
self.radioButton_detector_method_pt.setFont(font)
|
||||
self.radioButton_detector_method_pt.setChecked(True)
|
||||
self.radioButton_detector_method_pt.setObjectName("radioButton_detector_method_pt")
|
||||
self.gridLayout_73.addWidget(self.radioButton_detector_method_pt, 4, 0, 1, 1)
|
||||
self.radioButton_detector_method_Engzee = QtWidgets.QRadioButton(self.groupBox_detect_Rpeaks_input_args)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("黑体")
|
||||
font.setPointSize(14)
|
||||
self.radioButton_detector_method_Engzee.setFont(font)
|
||||
self.radioButton_detector_method_Engzee.setObjectName("radioButton_detector_method_Engzee")
|
||||
self.gridLayout_73.addWidget(self.radioButton_detector_method_Engzee, 8, 0, 1, 1)
|
||||
self.lineEdit_detect_Rpeaks_bandpass_high = QtWidgets.QLineEdit(self.groupBox_detect_Rpeaks_input_args)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("黑体")
|
||||
font.setPointSize(14)
|
||||
self.lineEdit_detect_Rpeaks_bandpass_high.setFont(font)
|
||||
self.lineEdit_detect_Rpeaks_bandpass_high.setPlaceholderText("")
|
||||
self.lineEdit_detect_Rpeaks_bandpass_high.setObjectName("lineEdit_detect_Rpeaks_bandpass_high")
|
||||
self.gridLayout_73.addWidget(self.lineEdit_detect_Rpeaks_bandpass_high, 2, 3, 1, 1)
|
||||
self.lineEdit_detect_Rpeaks_peaks_value = QtWidgets.QLineEdit(self.groupBox_detect_Rpeaks_input_args)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("黑体")
|
||||
font.setPointSize(14)
|
||||
self.lineEdit_detect_Rpeaks_peaks_value.setFont(font)
|
||||
self.lineEdit_detect_Rpeaks_peaks_value.setPlaceholderText("")
|
||||
self.lineEdit_detect_Rpeaks_peaks_value.setObjectName("lineEdit_detect_Rpeaks_peaks_value")
|
||||
self.gridLayout_73.addWidget(self.lineEdit_detect_Rpeaks_peaks_value, 1, 1, 1, 3)
|
||||
self.label_13 = QtWidgets.QLabel(self.groupBox_detect_Rpeaks_input_args)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("黑体")
|
||||
font.setPointSize(14)
|
||||
self.label_13.setFont(font)
|
||||
self.label_13.setObjectName("label_13")
|
||||
self.gridLayout_73.addWidget(self.label_13, 2, 2, 1, 1)
|
||||
self.label_10 = QtWidgets.QLabel(self.groupBox_detect_Rpeaks_input_args)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Maximum)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.label_10.sizePolicy().hasHeightForWidth())
|
||||
self.label_10.setSizePolicy(sizePolicy)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("黑体")
|
||||
font.setPointSize(14)
|
||||
self.label_10.setFont(font)
|
||||
self.label_10.setObjectName("label_10")
|
||||
self.gridLayout_73.addWidget(self.label_10, 3, 0, 1, 4)
|
||||
self.gridLayout_67.addWidget(self.groupBox_detect_Rpeaks_input_args, 1, 0, 1, 2)
|
||||
self.pushButton_detect_Rpeaks_view = QtWidgets.QPushButton(self.groupBox_detect_Rpeaks)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Preferred)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.pushButton_detect_Rpeaks_view.sizePolicy().hasHeightForWidth())
|
||||
self.pushButton_detect_Rpeaks_view.setSizePolicy(sizePolicy)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("黑体")
|
||||
font.setPointSize(14)
|
||||
self.pushButton_detect_Rpeaks_view.setFont(font)
|
||||
self.pushButton_detect_Rpeaks_view.setObjectName("pushButton_detect_Rpeaks_view")
|
||||
self.gridLayout_67.addWidget(self.pushButton_detect_Rpeaks_view, 4, 0, 1, 1)
|
||||
self.pushButton_detect_Rpeaks_save = QtWidgets.QPushButton(self.groupBox_detect_Rpeaks)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Preferred)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.pushButton_detect_Rpeaks_save.sizePolicy().hasHeightForWidth())
|
||||
self.pushButton_detect_Rpeaks_save.setSizePolicy(sizePolicy)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("黑体")
|
||||
font.setPointSize(14)
|
||||
self.pushButton_detect_Rpeaks_save.setFont(font)
|
||||
self.pushButton_detect_Rpeaks_save.setObjectName("pushButton_detect_Rpeaks_save")
|
||||
self.gridLayout_67.addWidget(self.pushButton_detect_Rpeaks_save, 4, 1, 1, 1)
|
||||
self.groupBox_detect_Rpeaks_inputFile_check = QtWidgets.QGroupBox(self.groupBox_detect_Rpeaks)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.groupBox_detect_Rpeaks_inputFile_check.sizePolicy().hasHeightForWidth())
|
||||
self.groupBox_detect_Rpeaks_inputFile_check.setSizePolicy(sizePolicy)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("黑体")
|
||||
font.setPointSize(10)
|
||||
self.groupBox_detect_Rpeaks_inputFile_check.setFont(font)
|
||||
self.groupBox_detect_Rpeaks_inputFile_check.setObjectName("groupBox_detect_Rpeaks_inputFile_check")
|
||||
self.gridLayout_72 = QtWidgets.QGridLayout(self.groupBox_detect_Rpeaks_inputFile_check)
|
||||
self.gridLayout_72.setObjectName("gridLayout_72")
|
||||
self.lineEdit_detect_Rpeaks_filter_ecg_path = QtWidgets.QLineEdit(self.groupBox_detect_Rpeaks_inputFile_check)
|
||||
self.lineEdit_detect_Rpeaks_filter_ecg_path.setEnabled(False)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("黑体")
|
||||
font.setPointSize(10)
|
||||
self.lineEdit_detect_Rpeaks_filter_ecg_path.setFont(font)
|
||||
self.lineEdit_detect_Rpeaks_filter_ecg_path.setObjectName("lineEdit_detect_Rpeaks_filter_ecg_path")
|
||||
self.gridLayout_72.addWidget(self.lineEdit_detect_Rpeaks_filter_ecg_path, 1, 0, 1, 1)
|
||||
self.label_7 = QtWidgets.QLabel(self.groupBox_detect_Rpeaks_inputFile_check)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("黑体")
|
||||
font.setPointSize(14)
|
||||
self.label_7.setFont(font)
|
||||
self.label_7.setObjectName("label_7")
|
||||
self.gridLayout_72.addWidget(self.label_7, 0, 0, 1, 1)
|
||||
self.textBrowser = QtWidgets.QTextBrowser(self.groupBox_detect_Rpeaks_inputFile_check)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Maximum)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.textBrowser.sizePolicy().hasHeightForWidth())
|
||||
self.textBrowser.setSizePolicy(sizePolicy)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("黑体")
|
||||
font.setPointSize(12)
|
||||
self.textBrowser.setFont(font)
|
||||
self.textBrowser.setStyleSheet("background-color: rgb(85, 255, 255);")
|
||||
self.textBrowser.setObjectName("textBrowser")
|
||||
self.gridLayout_72.addWidget(self.textBrowser, 4, 0, 1, 1)
|
||||
self.label_8 = QtWidgets.QLabel(self.groupBox_detect_Rpeaks_inputFile_check)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("黑体")
|
||||
font.setPointSize(14)
|
||||
self.label_8.setFont(font)
|
||||
self.label_8.setObjectName("label_8")
|
||||
self.gridLayout_72.addWidget(self.label_8, 2, 0, 1, 1)
|
||||
self.lineEdit_detect_Rpeaks_save_path = QtWidgets.QLineEdit(self.groupBox_detect_Rpeaks_inputFile_check)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("黑体")
|
||||
font.setPointSize(10)
|
||||
self.lineEdit_detect_Rpeaks_save_path.setFont(font)
|
||||
self.lineEdit_detect_Rpeaks_save_path.setObjectName("lineEdit_detect_Rpeaks_save_path")
|
||||
self.gridLayout_72.addWidget(self.lineEdit_detect_Rpeaks_save_path, 3, 0, 1, 1)
|
||||
self.gridLayout_72.setRowStretch(0, 1)
|
||||
self.gridLayout_72.setRowStretch(1, 1)
|
||||
self.gridLayout_72.setRowStretch(2, 1)
|
||||
self.gridLayout_72.setRowStretch(3, 1)
|
||||
self.gridLayout_72.setRowStretch(4, 2)
|
||||
self.gridLayout_67.addWidget(self.groupBox_detect_Rpeaks_inputFile_check, 0, 0, 1, 2)
|
||||
spacerItem = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
|
||||
self.gridLayout_67.addItem(spacerItem, 3, 0, 1, 2)
|
||||
self.gridLayout_67.setRowStretch(0, 4)
|
||||
self.gridLayout_67.setRowStretch(1, 4)
|
||||
self.gridLayout_67.setRowStretch(2, 4)
|
||||
self.gridLayout_67.setRowStretch(3, 1)
|
||||
self.gridLayout_67.setRowStretch(4, 1)
|
||||
self.gridLayout.addWidget(self.groupBox_detect_Rpeaks, 0, 0, 1, 1)
|
||||
|
||||
self.retranslateUi(widget_detect_Rpeaks)
|
||||
QtCore.QMetaObject.connectSlotsByName(widget_detect_Rpeaks)
|
||||
|
||||
def retranslateUi(self, widget_detect_Rpeaks):
|
||||
_translate = QtCore.QCoreApplication.translate
|
||||
widget_detect_Rpeaks.setWindowTitle(_translate("widget_detect_Rpeaks", "Form"))
|
||||
self.groupBox_detect_Rpeaks.setTitle(_translate("widget_detect_Rpeaks", "ECG的R峰提取"))
|
||||
self.groupBox_detect_Rpeaks_signal_parts_list.setTitle(_translate("widget_detect_Rpeaks", "信号片段列表"))
|
||||
self.pushButton_detect_Rpeaks_left.setText(_translate("widget_detect_Rpeaks", "上一个"))
|
||||
self.pushButton_detect_Rpeaks_right.setText(_translate("widget_detect_Rpeaks", "下一个"))
|
||||
self.groupBox_detect_Rpeaks_input_args.setTitle(_translate("widget_detect_Rpeaks", "<R峰提取>参数输入"))
|
||||
self.radioButton_detector_method_Wt.setText(_translate("widget_detect_Rpeaks", "Wt"))
|
||||
self.label_9.setText(_translate("widget_detect_Rpeaks", "信号采样率(Hz)"))
|
||||
self.lineEdit_detect_Rpeaks_bandpass_low.setText(_translate("widget_detect_Rpeaks", "2"))
|
||||
self.radioButton_detector_method_ta.setText(_translate("widget_detect_Rpeaks", "ta"))
|
||||
self.label_11.setText(_translate("widget_detect_Rpeaks", "寻峰阈值(个)"))
|
||||
self.radioButton_detector_method_Hamilton.setText(_translate("widget_detect_Rpeaks", "Hamilton"))
|
||||
self.lineEdit_detect_Rpeaks_sampling_rate.setText(_translate("widget_detect_Rpeaks", "1000"))
|
||||
self.label_12.setText(_translate("widget_detect_Rpeaks", "带通滤波截止频率(Hz)"))
|
||||
self.radioButton_detector_method_pt.setText(_translate("widget_detect_Rpeaks", "pt"))
|
||||
self.radioButton_detector_method_Engzee.setText(_translate("widget_detect_Rpeaks", "Engzee"))
|
||||
self.lineEdit_detect_Rpeaks_bandpass_high.setText(_translate("widget_detect_Rpeaks", "15"))
|
||||
self.lineEdit_detect_Rpeaks_peaks_value.setText(_translate("widget_detect_Rpeaks", "200"))
|
||||
self.label_13.setText(_translate("widget_detect_Rpeaks", "~"))
|
||||
self.label_10.setText(_translate("widget_detect_Rpeaks", "R峰检测方法选择(一般选pt)"))
|
||||
self.pushButton_detect_Rpeaks_view.setText(_translate("widget_detect_Rpeaks", "查看结果"))
|
||||
self.pushButton_detect_Rpeaks_save.setText(_translate("widget_detect_Rpeaks", "保存结果"))
|
||||
self.groupBox_detect_Rpeaks_inputFile_check.setTitle(_translate("widget_detect_Rpeaks", "程序识别到的文件路径"))
|
||||
self.lineEdit_detect_Rpeaks_filter_ecg_path.setPlaceholderText(_translate("widget_detect_Rpeaks", "filter_ecg.txt文件路径"))
|
||||
self.label_7.setText(_translate("widget_detect_Rpeaks", "filter_ecg.txt"))
|
||||
self.textBrowser.setHtml(_translate("widget_detect_Rpeaks", "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n"
|
||||
"<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\n"
|
||||
"p, li { white-space: pre-wrap; }\n"
|
||||
"</style></head><body style=\" font-family:\'黑体\',\'黑体\',\'黑体\'; font-size:12pt; font-weight:400; font-style:normal;\">\n"
|
||||
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'黑体\',\'黑体\';\">将在此目录的文件夹下生成一一对应的hecg.txt和hRpeak.txt若干个</span></p></body></html>"))
|
||||
self.label_8.setText(_translate("widget_detect_Rpeaks", "保存路径"))
|
||||
self.lineEdit_detect_Rpeaks_save_path.setPlaceholderText(_translate("widget_detect_Rpeaks", "文件保存路径"))
|
489
ui/widget_detect_Rpeaks.ui
Normal file
489
ui/widget_detect_Rpeaks.ui
Normal file
@ -0,0 +1,489 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>widget_detect_Rpeaks</class>
|
||||
<widget class="QWidget" name="widget_detect_Rpeaks">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>386</width>
|
||||
<height>957</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>Form</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout">
|
||||
<item row="0" column="0">
|
||||
<widget class="QGroupBox" name="groupBox_detect_Rpeaks">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>黑体</family>
|
||||
<pointsize>10</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string>ECG的R峰提取</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout_67" rowstretch="4,4,4,1,1" columnstretch="0,0">
|
||||
<item row="2" column="0" colspan="2">
|
||||
<widget class="QGroupBox" name="groupBox_detect_Rpeaks_signal_parts_list">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>黑体</family>
|
||||
<pointsize>10</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string>信号片段列表</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout_74" rowstretch="0,0" columnstretch="1,1,1">
|
||||
<item row="0" column="2">
|
||||
<widget class="QPushButton" name="pushButton_detect_Rpeaks_left">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Minimum" vsizetype="Preferred">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>黑体</family>
|
||||
<pointsize>14</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>上一个</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="2">
|
||||
<widget class="QPushButton" name="pushButton_detect_Rpeaks_right">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Minimum" vsizetype="Preferred">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>黑体</family>
|
||||
<pointsize>14</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>下一个</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="0" rowspan="2" colspan="2">
|
||||
<widget class="QTableWidget" name="tableWidget_detect_Rpeaks_signal_parts_list">
|
||||
<property name="columnCount">
|
||||
<number>1</number>
|
||||
</property>
|
||||
<attribute name="verticalHeaderVisible">
|
||||
<bool>false</bool>
|
||||
</attribute>
|
||||
<column/>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0" colspan="2">
|
||||
<widget class="QGroupBox" name="groupBox_detect_Rpeaks_input_args">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>黑体</family>
|
||||
<pointsize>10</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string><R峰提取>参数输入</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout_73" columnstretch="0,0,0,0">
|
||||
<item row="6" column="0">
|
||||
<widget class="QRadioButton" name="radioButton_detector_method_Wt">
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>黑体</family>
|
||||
<pointsize>14</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Wt</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="label_9">
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>黑体</family>
|
||||
<pointsize>14</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>信号采样率(Hz)</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="1">
|
||||
<widget class="QLineEdit" name="lineEdit_detect_Rpeaks_bandpass_low">
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>黑体</family>
|
||||
<pointsize>14</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>2</string>
|
||||
</property>
|
||||
<property name="placeholderText">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="1" colspan="3">
|
||||
<widget class="QRadioButton" name="radioButton_detector_method_ta">
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>黑体</family>
|
||||
<pointsize>14</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>ta</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QLabel" name="label_11">
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>黑体</family>
|
||||
<pointsize>14</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>寻峰阈值(个)</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="6" column="1" colspan="3">
|
||||
<widget class="QRadioButton" name="radioButton_detector_method_Hamilton">
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>黑体</family>
|
||||
<pointsize>14</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Hamilton</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1" colspan="3">
|
||||
<widget class="QLineEdit" name="lineEdit_detect_Rpeaks_sampling_rate">
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>黑体</family>
|
||||
<pointsize>14</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>1000</string>
|
||||
</property>
|
||||
<property name="placeholderText">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="0">
|
||||
<widget class="QLabel" name="label_12">
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>黑体</family>
|
||||
<pointsize>14</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>带通滤波截止频率(Hz)</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="0">
|
||||
<widget class="QRadioButton" name="radioButton_detector_method_pt">
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>黑体</family>
|
||||
<pointsize>14</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>pt</string>
|
||||
</property>
|
||||
<property name="checked">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="8" column="0">
|
||||
<widget class="QRadioButton" name="radioButton_detector_method_Engzee">
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>黑体</family>
|
||||
<pointsize>14</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Engzee</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="3">
|
||||
<widget class="QLineEdit" name="lineEdit_detect_Rpeaks_bandpass_high">
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>黑体</family>
|
||||
<pointsize>14</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>15</string>
|
||||
</property>
|
||||
<property name="placeholderText">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1" colspan="3">
|
||||
<widget class="QLineEdit" name="lineEdit_detect_Rpeaks_peaks_value">
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>黑体</family>
|
||||
<pointsize>14</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>200</string>
|
||||
</property>
|
||||
<property name="placeholderText">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="2">
|
||||
<widget class="QLabel" name="label_13">
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>黑体</family>
|
||||
<pointsize>14</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>~</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="0" colspan="4">
|
||||
<widget class="QLabel" name="label_10">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Maximum">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>黑体</family>
|
||||
<pointsize>14</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>R峰检测方法选择(一般选pt)</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="0">
|
||||
<widget class="QPushButton" name="pushButton_detect_Rpeaks_view">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Minimum" vsizetype="Preferred">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>黑体</family>
|
||||
<pointsize>14</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>查看结果</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="1">
|
||||
<widget class="QPushButton" name="pushButton_detect_Rpeaks_save">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Minimum" vsizetype="Preferred">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>黑体</family>
|
||||
<pointsize>14</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>保存结果</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="0" colspan="2">
|
||||
<widget class="QGroupBox" name="groupBox_detect_Rpeaks_inputFile_check">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>黑体</family>
|
||||
<pointsize>10</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string>程序识别到的文件路径</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout_72" rowstretch="1,1,1,1,2" columnstretch="0">
|
||||
<item row="1" column="0">
|
||||
<widget class="QLineEdit" name="lineEdit_detect_Rpeaks_filter_ecg_path">
|
||||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>黑体</family>
|
||||
<pointsize>10</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="placeholderText">
|
||||
<string>filter_ecg.txt文件路径</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="label_7">
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>黑体</family>
|
||||
<pointsize>14</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>filter_ecg.txt</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="0">
|
||||
<widget class="QTextBrowser" name="textBrowser">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Expanding" vsizetype="Maximum">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>黑体</family>
|
||||
<pointsize>12</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">background-color: rgb(85, 255, 255);</string>
|
||||
</property>
|
||||
<property name="html">
|
||||
<string><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
|
||||
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
|
||||
p, li { white-space: pre-wrap; }
|
||||
</style></head><body style=" font-family:'黑体','黑体','黑体'; font-size:12pt; font-weight:400; font-style:normal;">
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'黑体','黑体';">将在此目录的文件夹下生成一一对应的hecg.txt和hRpeak.txt若干个</span></p></body></html></string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="0">
|
||||
<widget class="QLabel" name="label_8">
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>黑体</family>
|
||||
<pointsize>14</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>保存路径</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="0">
|
||||
<widget class="QLineEdit" name="lineEdit_detect_Rpeaks_save_path">
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>黑体</family>
|
||||
<pointsize>10</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="placeholderText">
|
||||
<string>文件保存路径</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="0" colspan="2">
|
||||
<spacer name="verticalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>40</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<resources/>
|
||||
<connections/>
|
||||
</ui>
|
115
ui/widget_func.py
Normal file
115
ui/widget_func.py
Normal file
@ -0,0 +1,115 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
# Form implementation generated from reading ui file 'widget_func.ui'
|
||||
#
|
||||
# Created by: PyQt5 UI code generator 5.15.9
|
||||
#
|
||||
# WARNING: Any manual changes made to this file will be lost when pyuic5 is
|
||||
# run again. Do not edit this file unless you know what you are doing.
|
||||
|
||||
|
||||
from PyQt5 import QtCore, QtGui, QtWidgets
|
||||
|
||||
|
||||
class Ui_widget_func(object):
|
||||
def setupUi(self, widget_func):
|
||||
widget_func.setObjectName("widget_func")
|
||||
widget_func.resize(568, 943)
|
||||
self.gridLayout = QtWidgets.QGridLayout(widget_func)
|
||||
self.gridLayout.setObjectName("gridLayout")
|
||||
self.groupBox_func_select = QtWidgets.QGroupBox(widget_func)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("黑体")
|
||||
font.setPointSize(10)
|
||||
self.groupBox_func_select.setFont(font)
|
||||
self.groupBox_func_select.setObjectName("groupBox_func_select")
|
||||
self.gridLayout_2 = QtWidgets.QGridLayout(self.groupBox_func_select)
|
||||
self.gridLayout_2.setObjectName("gridLayout_2")
|
||||
spacerItem = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
|
||||
self.gridLayout_2.addItem(spacerItem, 6, 1, 1, 2)
|
||||
spacerItem1 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
|
||||
self.gridLayout_2.addItem(spacerItem1, 0, 3, 9, 1)
|
||||
self.pushButton_detect_Rpeaks = QtWidgets.QPushButton(self.groupBox_func_select)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Minimum)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.pushButton_detect_Rpeaks.sizePolicy().hasHeightForWidth())
|
||||
self.pushButton_detect_Rpeaks.setSizePolicy(sizePolicy)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("黑体")
|
||||
font.setPointSize(24)
|
||||
self.pushButton_detect_Rpeaks.setFont(font)
|
||||
self.pushButton_detect_Rpeaks.setObjectName("pushButton_detect_Rpeaks")
|
||||
self.gridLayout_2.addWidget(self.pushButton_detect_Rpeaks, 5, 1, 1, 2)
|
||||
spacerItem2 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
|
||||
self.gridLayout_2.addItem(spacerItem2, 2, 1, 1, 2)
|
||||
spacerItem3 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
|
||||
self.gridLayout_2.addItem(spacerItem3, 4, 1, 1, 2)
|
||||
spacerItem4 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
|
||||
self.gridLayout_2.addItem(spacerItem4, 0, 1, 1, 2)
|
||||
self.pushButton_detect_Jpeaks = QtWidgets.QPushButton(self.groupBox_func_select)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Minimum)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.pushButton_detect_Jpeaks.sizePolicy().hasHeightForWidth())
|
||||
self.pushButton_detect_Jpeaks.setSizePolicy(sizePolicy)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("黑体")
|
||||
font.setPointSize(24)
|
||||
self.pushButton_detect_Jpeaks.setFont(font)
|
||||
self.pushButton_detect_Jpeaks.setObjectName("pushButton_detect_Jpeaks")
|
||||
self.gridLayout_2.addWidget(self.pushButton_detect_Jpeaks, 7, 1, 1, 2)
|
||||
self.pushButton_rootpath_open = QtWidgets.QPushButton(self.groupBox_func_select)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("黑体")
|
||||
font.setPointSize(14)
|
||||
self.pushButton_rootpath_open.setFont(font)
|
||||
self.pushButton_rootpath_open.setObjectName("pushButton_rootpath_open")
|
||||
self.gridLayout_2.addWidget(self.pushButton_rootpath_open, 1, 2, 1, 1)
|
||||
self.pushButton_resample1000Hz = QtWidgets.QPushButton(self.groupBox_func_select)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Minimum)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.pushButton_resample1000Hz.sizePolicy().hasHeightForWidth())
|
||||
self.pushButton_resample1000Hz.setSizePolicy(sizePolicy)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("黑体")
|
||||
font.setPointSize(24)
|
||||
self.pushButton_resample1000Hz.setFont(font)
|
||||
self.pushButton_resample1000Hz.setObjectName("pushButton_resample1000Hz")
|
||||
self.gridLayout_2.addWidget(self.pushButton_resample1000Hz, 3, 1, 1, 2)
|
||||
self.lineEdit_rootpath = QtWidgets.QLineEdit(self.groupBox_func_select)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("Times New Roman")
|
||||
font.setPointSize(14)
|
||||
self.lineEdit_rootpath.setFont(font)
|
||||
self.lineEdit_rootpath.setObjectName("lineEdit_rootpath")
|
||||
self.gridLayout_2.addWidget(self.lineEdit_rootpath, 1, 1, 1, 1)
|
||||
spacerItem5 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
|
||||
self.gridLayout_2.addItem(spacerItem5, 0, 0, 9, 1)
|
||||
spacerItem6 = QtWidgets.QSpacerItem(518, 57, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
|
||||
self.gridLayout_2.addItem(spacerItem6, 8, 1, 1, 2)
|
||||
self.gridLayout_2.setColumnStretch(0, 2)
|
||||
self.gridLayout_2.setRowStretch(0, 2)
|
||||
self.gridLayout_2.setRowStretch(1, 2)
|
||||
self.gridLayout_2.setRowStretch(2, 2)
|
||||
self.gridLayout_2.setRowStretch(3, 3)
|
||||
self.gridLayout_2.setRowStretch(4, 2)
|
||||
self.gridLayout_2.setRowStretch(5, 3)
|
||||
self.gridLayout_2.setRowStretch(6, 2)
|
||||
self.gridLayout_2.setRowStretch(7, 3)
|
||||
self.gridLayout_2.setRowStretch(8, 2)
|
||||
self.gridLayout.addWidget(self.groupBox_func_select, 0, 0, 1, 1)
|
||||
|
||||
self.retranslateUi(widget_func)
|
||||
QtCore.QMetaObject.connectSlotsByName(widget_func)
|
||||
|
||||
def retranslateUi(self, widget_func):
|
||||
_translate = QtCore.QCoreApplication.translate
|
||||
widget_func.setWindowTitle(_translate("widget_func", "Form"))
|
||||
self.groupBox_func_select.setTitle(_translate("widget_func", "功能选择"))
|
||||
self.pushButton_detect_Rpeaks.setText(_translate("widget_func", "ECG的R峰提取"))
|
||||
self.pushButton_detect_Jpeaks.setText(_translate("widget_func", "BCG的J峰提取"))
|
||||
self.pushButton_rootpath_open.setText(_translate("widget_func", "浏览"))
|
||||
self.pushButton_resample1000Hz.setText(_translate("widget_func", "重采样至1000Hz"))
|
||||
self.lineEdit_rootpath.setPlaceholderText(_translate("widget_func", "数据根目录"))
|
210
ui/widget_func.ui
Normal file
210
ui/widget_func.ui
Normal file
@ -0,0 +1,210 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>widget_func</class>
|
||||
<widget class="QWidget" name="widget_func">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>568</width>
|
||||
<height>943</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>Form</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout">
|
||||
<item row="0" column="0">
|
||||
<widget class="QGroupBox" name="groupBox_func_select">
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>黑体</family>
|
||||
<pointsize>10</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string>功能选择</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout_2" rowstretch="2,2,2,3,2,3,2,3,2" columnstretch="2,0,0,0">
|
||||
<item row="6" column="1" colspan="2">
|
||||
<spacer name="verticalSpacer_3">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>40</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="0" column="3" rowspan="9">
|
||||
<spacer name="horizontalSpacer_2">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="5" column="1" colspan="2">
|
||||
<widget class="QPushButton" name="pushButton_detect_Rpeaks">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Minimum" vsizetype="Minimum">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>黑体</family>
|
||||
<pointsize>24</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>ECG的R峰提取</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="1" colspan="2">
|
||||
<spacer name="verticalSpacer_4">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>40</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="4" column="1" colspan="2">
|
||||
<spacer name="verticalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>40</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="0" column="1" colspan="2">
|
||||
<spacer name="verticalSpacer_6">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>40</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="7" column="1" colspan="2">
|
||||
<widget class="QPushButton" name="pushButton_detect_Jpeaks">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Minimum" vsizetype="Minimum">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>黑体</family>
|
||||
<pointsize>24</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>BCG的J峰提取</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="2">
|
||||
<widget class="QPushButton" name="pushButton_rootpath_open">
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>黑体</family>
|
||||
<pointsize>14</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>浏览</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="1" colspan="2">
|
||||
<widget class="QPushButton" name="pushButton_resample1000Hz">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Minimum" vsizetype="Minimum">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>黑体</family>
|
||||
<pointsize>24</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>重采样至1000Hz</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<widget class="QLineEdit" name="lineEdit_rootpath">
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Times New Roman</family>
|
||||
<pointsize>14</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="placeholderText">
|
||||
<string>数据根目录</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="0" rowspan="9">
|
||||
<spacer name="horizontalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="8" column="1" colspan="2">
|
||||
<spacer name="verticalSpacer_5">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>518</width>
|
||||
<height>57</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<resources/>
|
||||
<connections/>
|
||||
</ui>
|
209
ui/widget_resample1000Hz.py
Normal file
209
ui/widget_resample1000Hz.py
Normal file
@ -0,0 +1,209 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
# Form implementation generated from reading ui file 'widget_resample1000Hz.ui'
|
||||
#
|
||||
# Created by: PyQt5 UI code generator 5.15.9
|
||||
#
|
||||
# WARNING: Any manual changes made to this file will be lost when pyuic5 is
|
||||
# run again. Do not edit this file unless you know what you are doing.
|
||||
|
||||
|
||||
from PyQt5 import QtCore, QtGui, QtWidgets
|
||||
|
||||
|
||||
class Ui_widget_resample1000Hz(object):
|
||||
def setupUi(self, widget_resample1000Hz):
|
||||
widget_resample1000Hz.setObjectName("widget_resample1000Hz")
|
||||
widget_resample1000Hz.resize(370, 977)
|
||||
self.gridLayout = QtWidgets.QGridLayout(widget_resample1000Hz)
|
||||
self.gridLayout.setObjectName("gridLayout")
|
||||
self.groupBox_resample1000Hz = QtWidgets.QGroupBox(widget_resample1000Hz)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.groupBox_resample1000Hz.sizePolicy().hasHeightForWidth())
|
||||
self.groupBox_resample1000Hz.setSizePolicy(sizePolicy)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("黑体")
|
||||
font.setPointSize(10)
|
||||
self.groupBox_resample1000Hz.setFont(font)
|
||||
self.groupBox_resample1000Hz.setObjectName("groupBox_resample1000Hz")
|
||||
self.gridLayout_64 = QtWidgets.QGridLayout(self.groupBox_resample1000Hz)
|
||||
self.gridLayout_64.setObjectName("gridLayout_64")
|
||||
self.pushButton_resample1000Hz_view = QtWidgets.QPushButton(self.groupBox_resample1000Hz)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Preferred)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.pushButton_resample1000Hz_view.sizePolicy().hasHeightForWidth())
|
||||
self.pushButton_resample1000Hz_view.setSizePolicy(sizePolicy)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("黑体")
|
||||
font.setPointSize(14)
|
||||
self.pushButton_resample1000Hz_view.setFont(font)
|
||||
self.pushButton_resample1000Hz_view.setObjectName("pushButton_resample1000Hz_view")
|
||||
self.gridLayout_64.addWidget(self.pushButton_resample1000Hz_view, 3, 0, 1, 1)
|
||||
self.groupBox_resample1000Hz_inputFile_check = QtWidgets.QGroupBox(self.groupBox_resample1000Hz)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.groupBox_resample1000Hz_inputFile_check.sizePolicy().hasHeightForWidth())
|
||||
self.groupBox_resample1000Hz_inputFile_check.setSizePolicy(sizePolicy)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("黑体")
|
||||
font.setPointSize(10)
|
||||
self.groupBox_resample1000Hz_inputFile_check.setFont(font)
|
||||
self.groupBox_resample1000Hz_inputFile_check.setObjectName("groupBox_resample1000Hz_inputFile_check")
|
||||
self.gridLayout_70 = QtWidgets.QGridLayout(self.groupBox_resample1000Hz_inputFile_check)
|
||||
self.gridLayout_70.setObjectName("gridLayout_70")
|
||||
self.lineEdit_resample1000Hz_DSbcg_sig_path = QtWidgets.QLineEdit(self.groupBox_resample1000Hz_inputFile_check)
|
||||
self.lineEdit_resample1000Hz_DSbcg_sig_path.setEnabled(False)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("黑体")
|
||||
font.setPointSize(10)
|
||||
self.lineEdit_resample1000Hz_DSbcg_sig_path.setFont(font)
|
||||
self.lineEdit_resample1000Hz_DSbcg_sig_path.setObjectName("lineEdit_resample1000Hz_DSbcg_sig_path")
|
||||
self.gridLayout_70.addWidget(self.lineEdit_resample1000Hz_DSbcg_sig_path, 3, 0, 1, 1)
|
||||
self.label_4 = QtWidgets.QLabel(self.groupBox_resample1000Hz_inputFile_check)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("黑体")
|
||||
font.setPointSize(14)
|
||||
self.label_4.setFont(font)
|
||||
self.label_4.setObjectName("label_4")
|
||||
self.gridLayout_70.addWidget(self.label_4, 0, 0, 1, 1)
|
||||
self.label_6 = QtWidgets.QLabel(self.groupBox_resample1000Hz_inputFile_check)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("黑体")
|
||||
font.setPointSize(14)
|
||||
self.label_6.setFont(font)
|
||||
self.label_6.setObjectName("label_6")
|
||||
self.gridLayout_70.addWidget(self.label_6, 4, 0, 1, 1)
|
||||
self.lineEdit_resample1000Hz_raw_org_path = QtWidgets.QLineEdit(self.groupBox_resample1000Hz_inputFile_check)
|
||||
self.lineEdit_resample1000Hz_raw_org_path.setEnabled(False)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("黑体")
|
||||
font.setPointSize(10)
|
||||
self.lineEdit_resample1000Hz_raw_org_path.setFont(font)
|
||||
self.lineEdit_resample1000Hz_raw_org_path.setObjectName("lineEdit_resample1000Hz_raw_org_path")
|
||||
self.gridLayout_70.addWidget(self.lineEdit_resample1000Hz_raw_org_path, 1, 0, 1, 1)
|
||||
self.label_5 = QtWidgets.QLabel(self.groupBox_resample1000Hz_inputFile_check)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("黑体")
|
||||
font.setPointSize(14)
|
||||
self.label_5.setFont(font)
|
||||
self.label_5.setObjectName("label_5")
|
||||
self.gridLayout_70.addWidget(self.label_5, 2, 0, 1, 1)
|
||||
self.lineEdit_resample1000Hz_save_path = QtWidgets.QLineEdit(self.groupBox_resample1000Hz_inputFile_check)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("黑体")
|
||||
font.setPointSize(10)
|
||||
self.lineEdit_resample1000Hz_save_path.setFont(font)
|
||||
self.lineEdit_resample1000Hz_save_path.setObjectName("lineEdit_resample1000Hz_save_path")
|
||||
self.gridLayout_70.addWidget(self.lineEdit_resample1000Hz_save_path, 5, 0, 1, 1)
|
||||
self.gridLayout_64.addWidget(self.groupBox_resample1000Hz_inputFile_check, 0, 0, 1, 2)
|
||||
self.pushButton_resample1000Hz_save = QtWidgets.QPushButton(self.groupBox_resample1000Hz)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Preferred)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.pushButton_resample1000Hz_save.sizePolicy().hasHeightForWidth())
|
||||
self.pushButton_resample1000Hz_save.setSizePolicy(sizePolicy)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("黑体")
|
||||
font.setPointSize(14)
|
||||
self.pushButton_resample1000Hz_save.setFont(font)
|
||||
self.pushButton_resample1000Hz_save.setObjectName("pushButton_resample1000Hz_save")
|
||||
self.gridLayout_64.addWidget(self.pushButton_resample1000Hz_save, 3, 1, 1, 1)
|
||||
self.groupBox_resample1000Hz_input_args = QtWidgets.QGroupBox(self.groupBox_resample1000Hz)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.groupBox_resample1000Hz_input_args.sizePolicy().hasHeightForWidth())
|
||||
self.groupBox_resample1000Hz_input_args.setSizePolicy(sizePolicy)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("黑体")
|
||||
font.setPointSize(10)
|
||||
self.groupBox_resample1000Hz_input_args.setFont(font)
|
||||
self.groupBox_resample1000Hz_input_args.setObjectName("groupBox_resample1000Hz_input_args")
|
||||
self.gridLayout_71 = QtWidgets.QGridLayout(self.groupBox_resample1000Hz_input_args)
|
||||
self.gridLayout_71.setObjectName("gridLayout_71")
|
||||
self.lineEdit_resample1000Hz_original_sampling_rate = QtWidgets.QLineEdit(self.groupBox_resample1000Hz_input_args)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("黑体")
|
||||
font.setPointSize(14)
|
||||
self.lineEdit_resample1000Hz_original_sampling_rate.setFont(font)
|
||||
self.lineEdit_resample1000Hz_original_sampling_rate.setPlaceholderText("")
|
||||
self.lineEdit_resample1000Hz_original_sampling_rate.setObjectName("lineEdit_resample1000Hz_original_sampling_rate")
|
||||
self.gridLayout_71.addWidget(self.lineEdit_resample1000Hz_original_sampling_rate, 0, 1, 1, 1)
|
||||
self.label_3 = QtWidgets.QLabel(self.groupBox_resample1000Hz_input_args)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("黑体")
|
||||
font.setPointSize(14)
|
||||
self.label_3.setFont(font)
|
||||
self.label_3.setObjectName("label_3")
|
||||
self.gridLayout_71.addWidget(self.label_3, 1, 0, 1, 1)
|
||||
self.lineEdit_resample1000Hz_target_sampling_rate = QtWidgets.QLineEdit(self.groupBox_resample1000Hz_input_args)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("黑体")
|
||||
font.setPointSize(14)
|
||||
self.lineEdit_resample1000Hz_target_sampling_rate.setFont(font)
|
||||
self.lineEdit_resample1000Hz_target_sampling_rate.setPlaceholderText("")
|
||||
self.lineEdit_resample1000Hz_target_sampling_rate.setObjectName("lineEdit_resample1000Hz_target_sampling_rate")
|
||||
self.gridLayout_71.addWidget(self.lineEdit_resample1000Hz_target_sampling_rate, 1, 1, 1, 1)
|
||||
self.label_2 = QtWidgets.QLabel(self.groupBox_resample1000Hz_input_args)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("黑体")
|
||||
font.setPointSize(14)
|
||||
self.label_2.setFont(font)
|
||||
self.label_2.setObjectName("label_2")
|
||||
self.gridLayout_71.addWidget(self.label_2, 0, 0, 1, 1)
|
||||
self.label = QtWidgets.QLabel(self.groupBox_resample1000Hz_input_args)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("黑体")
|
||||
font.setPointSize(14)
|
||||
self.label.setFont(font)
|
||||
self.label.setObjectName("label")
|
||||
self.gridLayout_71.addWidget(self.label, 2, 0, 1, 1)
|
||||
self.lineEdit_resample1000Hz_cut_second = QtWidgets.QLineEdit(self.groupBox_resample1000Hz_input_args)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("黑体")
|
||||
font.setPointSize(14)
|
||||
self.lineEdit_resample1000Hz_cut_second.setFont(font)
|
||||
self.lineEdit_resample1000Hz_cut_second.setPlaceholderText("")
|
||||
self.lineEdit_resample1000Hz_cut_second.setObjectName("lineEdit_resample1000Hz_cut_second")
|
||||
self.gridLayout_71.addWidget(self.lineEdit_resample1000Hz_cut_second, 2, 1, 1, 1)
|
||||
self.gridLayout_64.addWidget(self.groupBox_resample1000Hz_input_args, 1, 0, 1, 2)
|
||||
spacerItem = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
|
||||
self.gridLayout_64.addItem(spacerItem, 2, 0, 1, 2)
|
||||
self.gridLayout_64.setColumnStretch(0, 1)
|
||||
self.gridLayout_64.setColumnStretch(1, 1)
|
||||
self.gridLayout_64.setRowStretch(0, 5)
|
||||
self.gridLayout_64.setRowStretch(1, 4)
|
||||
self.gridLayout_64.setRowStretch(2, 5)
|
||||
self.gridLayout_64.setRowStretch(3, 2)
|
||||
self.pushButton_resample1000Hz_view.raise_()
|
||||
self.pushButton_resample1000Hz_save.raise_()
|
||||
self.groupBox_resample1000Hz_input_args.raise_()
|
||||
self.groupBox_resample1000Hz_inputFile_check.raise_()
|
||||
self.gridLayout.addWidget(self.groupBox_resample1000Hz, 0, 0, 1, 1)
|
||||
|
||||
self.retranslateUi(widget_resample1000Hz)
|
||||
QtCore.QMetaObject.connectSlotsByName(widget_resample1000Hz)
|
||||
|
||||
def retranslateUi(self, widget_resample1000Hz):
|
||||
_translate = QtCore.QCoreApplication.translate
|
||||
widget_resample1000Hz.setWindowTitle(_translate("widget_resample1000Hz", "Form"))
|
||||
self.groupBox_resample1000Hz.setTitle(_translate("widget_resample1000Hz", "重采样至1000Hz"))
|
||||
self.pushButton_resample1000Hz_view.setText(_translate("widget_resample1000Hz", "查看结果"))
|
||||
self.groupBox_resample1000Hz_inputFile_check.setTitle(_translate("widget_resample1000Hz", "程序识别到的文件路径"))
|
||||
self.lineEdit_resample1000Hz_DSbcg_sig_path.setPlaceholderText(_translate("widget_resample1000Hz", "DSbcg_sig.txt文件路径"))
|
||||
self.label_4.setText(_translate("widget_resample1000Hz", "raw_org.txt"))
|
||||
self.label_6.setText(_translate("widget_resample1000Hz", "保存路径"))
|
||||
self.lineEdit_resample1000Hz_raw_org_path.setPlaceholderText(_translate("widget_resample1000Hz", "raw_org.txt文件路径"))
|
||||
self.label_5.setText(_translate("widget_resample1000Hz", "DSbcg_sig.txt"))
|
||||
self.lineEdit_resample1000Hz_save_path.setPlaceholderText(_translate("widget_resample1000Hz", "文件保存路径"))
|
||||
self.pushButton_resample1000Hz_save.setText(_translate("widget_resample1000Hz", "保存结果"))
|
||||
self.groupBox_resample1000Hz_input_args.setTitle(_translate("widget_resample1000Hz", "<重采样>参数输入"))
|
||||
self.lineEdit_resample1000Hz_original_sampling_rate.setText(_translate("widget_resample1000Hz", "100"))
|
||||
self.label_3.setText(_translate("widget_resample1000Hz", "目标采样率(Hz)"))
|
||||
self.lineEdit_resample1000Hz_target_sampling_rate.setText(_translate("widget_resample1000Hz", "1000"))
|
||||
self.label_2.setText(_translate("widget_resample1000Hz", "原始采样率(Hz)"))
|
||||
self.label.setText(_translate("widget_resample1000Hz", "裁剪的时间(秒)"))
|
308
ui/widget_resample1000Hz.ui
Normal file
308
ui/widget_resample1000Hz.ui
Normal file
@ -0,0 +1,308 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>widget_resample1000Hz</class>
|
||||
<widget class="QWidget" name="widget_resample1000Hz">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>370</width>
|
||||
<height>977</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>Form</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout">
|
||||
<item row="0" column="0">
|
||||
<widget class="QGroupBox" name="groupBox_resample1000Hz">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>黑体</family>
|
||||
<pointsize>10</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string>重采样至1000Hz</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout_64" rowstretch="5,4,5,2" columnstretch="1,1">
|
||||
<item row="3" column="0">
|
||||
<widget class="QPushButton" name="pushButton_resample1000Hz_view">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Minimum" vsizetype="Preferred">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>黑体</family>
|
||||
<pointsize>14</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>查看结果</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="0" colspan="2">
|
||||
<widget class="QGroupBox" name="groupBox_resample1000Hz_inputFile_check">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>黑体</family>
|
||||
<pointsize>10</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string>程序识别到的文件路径</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout_70" columnstretch="0">
|
||||
<item row="3" column="0">
|
||||
<widget class="QLineEdit" name="lineEdit_resample1000Hz_DSbcg_sig_path">
|
||||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>黑体</family>
|
||||
<pointsize>10</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="placeholderText">
|
||||
<string>DSbcg_sig.txt文件路径</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="label_4">
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>黑体</family>
|
||||
<pointsize>14</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>raw_org.txt</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="0">
|
||||
<widget class="QLabel" name="label_6">
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>黑体</family>
|
||||
<pointsize>14</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>保存路径</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QLineEdit" name="lineEdit_resample1000Hz_raw_org_path">
|
||||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>黑体</family>
|
||||
<pointsize>10</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="placeholderText">
|
||||
<string>raw_org.txt文件路径</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="0">
|
||||
<widget class="QLabel" name="label_5">
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>黑体</family>
|
||||
<pointsize>14</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>DSbcg_sig.txt</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="5" column="0">
|
||||
<widget class="QLineEdit" name="lineEdit_resample1000Hz_save_path">
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>黑体</family>
|
||||
<pointsize>10</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="placeholderText">
|
||||
<string>文件保存路径</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="1">
|
||||
<widget class="QPushButton" name="pushButton_resample1000Hz_save">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Minimum" vsizetype="Preferred">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>黑体</family>
|
||||
<pointsize>14</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>保存结果</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0" colspan="2">
|
||||
<widget class="QGroupBox" name="groupBox_resample1000Hz_input_args">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>黑体</family>
|
||||
<pointsize>10</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string><重采样>参数输入</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout_71" columnstretch="0,0">
|
||||
<item row="0" column="1">
|
||||
<widget class="QLineEdit" name="lineEdit_resample1000Hz_original_sampling_rate">
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>黑体</family>
|
||||
<pointsize>14</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>100</string>
|
||||
</property>
|
||||
<property name="placeholderText">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QLabel" name="label_3">
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>黑体</family>
|
||||
<pointsize>14</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>目标采样率(Hz)</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<widget class="QLineEdit" name="lineEdit_resample1000Hz_target_sampling_rate">
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>黑体</family>
|
||||
<pointsize>14</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>1000</string>
|
||||
</property>
|
||||
<property name="placeholderText">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="label_2">
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>黑体</family>
|
||||
<pointsize>14</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>原始采样率(Hz)</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="0">
|
||||
<widget class="QLabel" name="label">
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>黑体</family>
|
||||
<pointsize>14</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>裁剪的时间(秒)</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="1">
|
||||
<widget class="QLineEdit" name="lineEdit_resample1000Hz_cut_second">
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>黑体</family>
|
||||
<pointsize>14</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="placeholderText">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="0" colspan="2">
|
||||
<spacer name="verticalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>40</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
<zorder>pushButton_resample1000Hz_view</zorder>
|
||||
<zorder>pushButton_resample1000Hz_save</zorder>
|
||||
<zorder>groupBox_resample1000Hz_input_args</zorder>
|
||||
<zorder>groupBox_resample1000Hz_inputFile_check</zorder>
|
||||
<zorder>verticalSpacer</zorder>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<resources/>
|
||||
<connections/>
|
||||
</ui>
|
Loading…
Reference in New Issue
Block a user