删除了所有使用PSG_label的操作,所有标签将仅使用BCG_label进行操作。PSG_label_2_BCG_label在之后可整合到主程序中。
This commit is contained in:
parent
4108c18f12
commit
f5386bb0b3
334
MainWindow.py
334
MainWindow.py
@ -255,80 +255,6 @@ class Ui_MainWindow(object):
|
||||
self.groupBox_4.setObjectName("groupBox_4")
|
||||
self.gridLayout_2 = QtWidgets.QGridLayout(self.groupBox_4)
|
||||
self.gridLayout_2.setObjectName("gridLayout_2")
|
||||
self.lineEdit_remark = QtWidgets.QLineEdit(self.groupBox_4)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Fixed)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.lineEdit_remark.sizePolicy().hasHeightForWidth())
|
||||
self.lineEdit_remark.setSizePolicy(sizePolicy)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("Times New Roman")
|
||||
font.setPointSize(14)
|
||||
self.lineEdit_remark.setFont(font)
|
||||
self.lineEdit_remark.setObjectName("lineEdit_remark")
|
||||
self.gridLayout_2.addWidget(self.lineEdit_remark, 5, 2, 1, 3)
|
||||
self.pushButton_left = QtWidgets.QPushButton(self.groupBox_4)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.pushButton_left.sizePolicy().hasHeightForWidth())
|
||||
self.pushButton_left.setSizePolicy(sizePolicy)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("Times New Roman")
|
||||
font.setPointSize(14)
|
||||
self.pushButton_left.setFont(font)
|
||||
self.pushButton_left.setObjectName("pushButton_left")
|
||||
self.gridLayout_2.addWidget(self.pushButton_left, 15, 0, 1, 1)
|
||||
self.lineEdit_correctStart = QtWidgets.QLineEdit(self.groupBox_4)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Fixed)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.lineEdit_correctStart.sizePolicy().hasHeightForWidth())
|
||||
self.lineEdit_correctStart.setSizePolicy(sizePolicy)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("Times New Roman")
|
||||
font.setPointSize(14)
|
||||
self.lineEdit_correctStart.setFont(font)
|
||||
self.lineEdit_correctStart.setObjectName("lineEdit_correctStart")
|
||||
self.gridLayout_2.addWidget(self.lineEdit_correctStart, 7, 2, 1, 3)
|
||||
self.label_correctStart = QtWidgets.QLabel(self.groupBox_4)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.label_correctStart.sizePolicy().hasHeightForWidth())
|
||||
self.label_correctStart.setSizePolicy(sizePolicy)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("Times New Roman")
|
||||
font.setPointSize(14)
|
||||
self.label_correctStart.setFont(font)
|
||||
self.label_correctStart.setObjectName("label_correctStart")
|
||||
self.gridLayout_2.addWidget(self.label_correctStart, 7, 0, 1, 1)
|
||||
self.checkBox_examineLabeled = QtWidgets.QCheckBox(self.groupBox_4)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("Times New Roman")
|
||||
font.setPointSize(14)
|
||||
self.checkBox_examineLabeled.setFont(font)
|
||||
self.checkBox_examineLabeled.setObjectName("checkBox_examineLabeled")
|
||||
self.gridLayout_2.addWidget(self.checkBox_examineLabeled, 0, 0, 1, 4)
|
||||
self.label_quick_remark_input = QtWidgets.QLabel(self.groupBox_4)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("Times New Roman")
|
||||
font.setPointSize(14)
|
||||
self.label_quick_remark_input.setFont(font)
|
||||
self.label_quick_remark_input.setObjectName("label_quick_remark_input")
|
||||
self.gridLayout_2.addWidget(self.label_quick_remark_input, 6, 0, 1, 1)
|
||||
self.lineEdit_correctEnd = QtWidgets.QLineEdit(self.groupBox_4)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Fixed)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.lineEdit_correctEnd.sizePolicy().hasHeightForWidth())
|
||||
self.lineEdit_correctEnd.setSizePolicy(sizePolicy)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("Times New Roman")
|
||||
font.setPointSize(14)
|
||||
self.lineEdit_correctEnd.setFont(font)
|
||||
self.lineEdit_correctEnd.setObjectName("lineEdit_correctEnd")
|
||||
self.gridLayout_2.addWidget(self.lineEdit_correctEnd, 9, 2, 1, 3)
|
||||
self.label_correctEnd = QtWidgets.QLabel(self.groupBox_4)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
@ -340,7 +266,84 @@ class Ui_MainWindow(object):
|
||||
font.setPointSize(14)
|
||||
self.label_correctEnd.setFont(font)
|
||||
self.label_correctEnd.setObjectName("label_correctEnd")
|
||||
self.gridLayout_2.addWidget(self.label_correctEnd, 9, 0, 1, 1)
|
||||
self.gridLayout_2.addWidget(self.label_correctEnd, 8, 0, 1, 1)
|
||||
self.lineEdit_correctEnd = QtWidgets.QLineEdit(self.groupBox_4)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Fixed)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.lineEdit_correctEnd.sizePolicy().hasHeightForWidth())
|
||||
self.lineEdit_correctEnd.setSizePolicy(sizePolicy)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("Times New Roman")
|
||||
font.setPointSize(14)
|
||||
self.lineEdit_correctEnd.setFont(font)
|
||||
self.lineEdit_correctEnd.setObjectName("lineEdit_correctEnd")
|
||||
self.gridLayout_2.addWidget(self.lineEdit_correctEnd, 8, 2, 1, 3)
|
||||
self.horizontalLayout_12 = QtWidgets.QHBoxLayout()
|
||||
self.horizontalLayout_12.setObjectName("horizontalLayout_12")
|
||||
self.label_score = QtWidgets.QLabel(self.groupBox_4)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.label_score.sizePolicy().hasHeightForWidth())
|
||||
self.label_score.setSizePolicy(sizePolicy)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("Times New Roman")
|
||||
font.setPointSize(14)
|
||||
self.label_score.setFont(font)
|
||||
self.label_score.setObjectName("label_score")
|
||||
self.horizontalLayout_12.addWidget(self.label_score)
|
||||
self.radioButton_1_class = QtWidgets.QRadioButton(self.groupBox_4)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.radioButton_1_class.sizePolicy().hasHeightForWidth())
|
||||
self.radioButton_1_class.setSizePolicy(sizePolicy)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("Times New Roman")
|
||||
font.setPointSize(14)
|
||||
self.radioButton_1_class.setFont(font)
|
||||
self.radioButton_1_class.setObjectName("radioButton_1_class")
|
||||
self.horizontalLayout_12.addWidget(self.radioButton_1_class)
|
||||
self.radioButton_2_class = QtWidgets.QRadioButton(self.groupBox_4)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.radioButton_2_class.sizePolicy().hasHeightForWidth())
|
||||
self.radioButton_2_class.setSizePolicy(sizePolicy)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("Times New Roman")
|
||||
font.setPointSize(14)
|
||||
self.radioButton_2_class.setFont(font)
|
||||
self.radioButton_2_class.setObjectName("radioButton_2_class")
|
||||
self.horizontalLayout_12.addWidget(self.radioButton_2_class)
|
||||
self.radioButton_3_class = QtWidgets.QRadioButton(self.groupBox_4)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.radioButton_3_class.sizePolicy().hasHeightForWidth())
|
||||
self.radioButton_3_class.setSizePolicy(sizePolicy)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("Times New Roman")
|
||||
font.setPointSize(14)
|
||||
self.radioButton_3_class.setFont(font)
|
||||
self.radioButton_3_class.setObjectName("radioButton_3_class")
|
||||
self.horizontalLayout_12.addWidget(self.radioButton_3_class)
|
||||
self.gridLayout_2.addLayout(self.horizontalLayout_12, 3, 0, 1, 5)
|
||||
spacerItem3 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
|
||||
self.gridLayout_2.addItem(spacerItem3, 14, 1, 1, 1)
|
||||
self.lineEdit_correctStart = QtWidgets.QLineEdit(self.groupBox_4)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Fixed)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.lineEdit_correctStart.sizePolicy().hasHeightForWidth())
|
||||
self.lineEdit_correctStart.setSizePolicy(sizePolicy)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("Times New Roman")
|
||||
font.setPointSize(14)
|
||||
self.lineEdit_correctStart.setFont(font)
|
||||
self.lineEdit_correctStart.setObjectName("lineEdit_correctStart")
|
||||
self.gridLayout_2.addWidget(self.lineEdit_correctStart, 6, 2, 1, 3)
|
||||
self.label_BCG_event = QtWidgets.QLabel(self.groupBox_4)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Preferred)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
@ -356,14 +359,47 @@ class Ui_MainWindow(object):
|
||||
self.label_BCG_event.setText("")
|
||||
self.label_BCG_event.setAlignment(QtCore.Qt.AlignCenter)
|
||||
self.label_BCG_event.setObjectName("label_BCG_event")
|
||||
self.gridLayout_2.addWidget(self.label_BCG_event, 2, 0, 1, 5)
|
||||
self.gridLayout_2.addWidget(self.label_BCG_event, 1, 0, 1, 5)
|
||||
self.pushButton_quick_remark_input_waitingForTalk = QtWidgets.QPushButton(self.groupBox_4)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("Times New Roman")
|
||||
font.setPointSize(14)
|
||||
self.pushButton_quick_remark_input_waitingForTalk.setFont(font)
|
||||
self.pushButton_quick_remark_input_waitingForTalk.setObjectName("pushButton_quick_remark_input_waitingForTalk")
|
||||
self.gridLayout_2.addWidget(self.pushButton_quick_remark_input_waitingForTalk, 6, 2, 1, 3)
|
||||
self.gridLayout_2.addWidget(self.pushButton_quick_remark_input_waitingForTalk, 5, 2, 1, 3)
|
||||
self.pushButton_right = QtWidgets.QPushButton(self.groupBox_4)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.pushButton_right.sizePolicy().hasHeightForWidth())
|
||||
self.pushButton_right.setSizePolicy(sizePolicy)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("Times New Roman")
|
||||
font.setPointSize(14)
|
||||
self.pushButton_right.setFont(font)
|
||||
self.pushButton_right.setObjectName("pushButton_right")
|
||||
self.gridLayout_2.addWidget(self.pushButton_right, 15, 0, 1, 1)
|
||||
spacerItem4 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
|
||||
self.gridLayout_2.addItem(spacerItem4, 15, 1, 1, 1)
|
||||
self.label_remark = QtWidgets.QLabel(self.groupBox_4)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.label_remark.sizePolicy().hasHeightForWidth())
|
||||
self.label_remark.setSizePolicy(sizePolicy)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("Times New Roman")
|
||||
font.setPointSize(14)
|
||||
self.label_remark.setFont(font)
|
||||
self.label_remark.setObjectName("label_remark")
|
||||
self.gridLayout_2.addWidget(self.label_remark, 4, 0, 1, 1)
|
||||
self.label_quick_remark_input = QtWidgets.QLabel(self.groupBox_4)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("Times New Roman")
|
||||
font.setPointSize(14)
|
||||
self.label_quick_remark_input.setFont(font)
|
||||
self.label_quick_remark_input.setObjectName("label_quick_remark_input")
|
||||
self.gridLayout_2.addWidget(self.label_quick_remark_input, 5, 0, 1, 1)
|
||||
self.horizontalLayout_radioButton = QtWidgets.QHBoxLayout()
|
||||
self.horizontalLayout_radioButton.setObjectName("horizontalLayout_radioButton")
|
||||
self.label_events = QtWidgets.QLabel(self.groupBox_4)
|
||||
@ -426,98 +462,38 @@ class Ui_MainWindow(object):
|
||||
self.radioButton_HPY.setFont(font)
|
||||
self.radioButton_HPY.setObjectName("radioButton_HPY")
|
||||
self.horizontalLayout_radioButton.addWidget(self.radioButton_HPY)
|
||||
self.gridLayout_2.addLayout(self.horizontalLayout_radioButton, 3, 0, 1, 5)
|
||||
self.label_PSG_event = QtWidgets.QLabel(self.groupBox_4)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Preferred)
|
||||
self.gridLayout_2.addLayout(self.horizontalLayout_radioButton, 2, 0, 1, 5)
|
||||
self.lineEdit_remark = QtWidgets.QLineEdit(self.groupBox_4)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Fixed)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.label_PSG_event.sizePolicy().hasHeightForWidth())
|
||||
self.label_PSG_event.setSizePolicy(sizePolicy)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("Times New Roman")
|
||||
font.setPointSize(12)
|
||||
font.setBold(False)
|
||||
font.setWeight(50)
|
||||
self.label_PSG_event.setFont(font)
|
||||
self.label_PSG_event.setText("")
|
||||
self.label_PSG_event.setAlignment(QtCore.Qt.AlignCenter)
|
||||
self.label_PSG_event.setObjectName("label_PSG_event")
|
||||
self.gridLayout_2.addWidget(self.label_PSG_event, 1, 0, 1, 5)
|
||||
self.label_remark = QtWidgets.QLabel(self.groupBox_4)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.label_remark.sizePolicy().hasHeightForWidth())
|
||||
self.label_remark.setSizePolicy(sizePolicy)
|
||||
sizePolicy.setHeightForWidth(self.lineEdit_remark.sizePolicy().hasHeightForWidth())
|
||||
self.lineEdit_remark.setSizePolicy(sizePolicy)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("Times New Roman")
|
||||
font.setPointSize(14)
|
||||
self.label_remark.setFont(font)
|
||||
self.label_remark.setObjectName("label_remark")
|
||||
self.gridLayout_2.addWidget(self.label_remark, 5, 0, 1, 1)
|
||||
self.pushButton_right = QtWidgets.QPushButton(self.groupBox_4)
|
||||
self.lineEdit_remark.setFont(font)
|
||||
self.lineEdit_remark.setObjectName("lineEdit_remark")
|
||||
self.gridLayout_2.addWidget(self.lineEdit_remark, 4, 2, 1, 3)
|
||||
self.pushButton_left = QtWidgets.QPushButton(self.groupBox_4)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.pushButton_right.sizePolicy().hasHeightForWidth())
|
||||
self.pushButton_right.setSizePolicy(sizePolicy)
|
||||
sizePolicy.setHeightForWidth(self.pushButton_left.sizePolicy().hasHeightForWidth())
|
||||
self.pushButton_left.setSizePolicy(sizePolicy)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("Times New Roman")
|
||||
font.setPointSize(14)
|
||||
self.pushButton_right.setFont(font)
|
||||
self.pushButton_right.setObjectName("pushButton_right")
|
||||
self.gridLayout_2.addWidget(self.pushButton_right, 16, 0, 1, 1)
|
||||
self.horizontalLayout_12 = QtWidgets.QHBoxLayout()
|
||||
self.horizontalLayout_12.setObjectName("horizontalLayout_12")
|
||||
self.label_score = QtWidgets.QLabel(self.groupBox_4)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.label_score.sizePolicy().hasHeightForWidth())
|
||||
self.label_score.setSizePolicy(sizePolicy)
|
||||
self.pushButton_left.setFont(font)
|
||||
self.pushButton_left.setObjectName("pushButton_left")
|
||||
self.gridLayout_2.addWidget(self.pushButton_left, 14, 0, 1, 1)
|
||||
self.checkBox_examineLabeled = QtWidgets.QCheckBox(self.groupBox_4)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("Times New Roman")
|
||||
font.setPointSize(14)
|
||||
self.label_score.setFont(font)
|
||||
self.label_score.setObjectName("label_score")
|
||||
self.horizontalLayout_12.addWidget(self.label_score)
|
||||
self.radioButton_1_class = QtWidgets.QRadioButton(self.groupBox_4)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.radioButton_1_class.sizePolicy().hasHeightForWidth())
|
||||
self.radioButton_1_class.setSizePolicy(sizePolicy)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("Times New Roman")
|
||||
font.setPointSize(14)
|
||||
self.radioButton_1_class.setFont(font)
|
||||
self.radioButton_1_class.setObjectName("radioButton_1_class")
|
||||
self.horizontalLayout_12.addWidget(self.radioButton_1_class)
|
||||
self.radioButton_2_class = QtWidgets.QRadioButton(self.groupBox_4)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.radioButton_2_class.sizePolicy().hasHeightForWidth())
|
||||
self.radioButton_2_class.setSizePolicy(sizePolicy)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("Times New Roman")
|
||||
font.setPointSize(14)
|
||||
self.radioButton_2_class.setFont(font)
|
||||
self.radioButton_2_class.setObjectName("radioButton_2_class")
|
||||
self.horizontalLayout_12.addWidget(self.radioButton_2_class)
|
||||
self.radioButton_3_class = QtWidgets.QRadioButton(self.groupBox_4)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.radioButton_3_class.sizePolicy().hasHeightForWidth())
|
||||
self.radioButton_3_class.setSizePolicy(sizePolicy)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("Times New Roman")
|
||||
font.setPointSize(14)
|
||||
self.radioButton_3_class.setFont(font)
|
||||
self.radioButton_3_class.setObjectName("radioButton_3_class")
|
||||
self.horizontalLayout_12.addWidget(self.radioButton_3_class)
|
||||
self.gridLayout_2.addLayout(self.horizontalLayout_12, 4, 0, 1, 5)
|
||||
self.checkBox_examineLabeled.setFont(font)
|
||||
self.checkBox_examineLabeled.setObjectName("checkBox_examineLabeled")
|
||||
self.gridLayout_2.addWidget(self.checkBox_examineLabeled, 0, 0, 1, 4)
|
||||
self.pushButton_confirmLabel = QtWidgets.QPushButton(self.groupBox_4)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Preferred)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
@ -529,11 +505,19 @@ class Ui_MainWindow(object):
|
||||
font.setPointSize(14)
|
||||
self.pushButton_confirmLabel.setFont(font)
|
||||
self.pushButton_confirmLabel.setObjectName("pushButton_confirmLabel")
|
||||
self.gridLayout_2.addWidget(self.pushButton_confirmLabel, 15, 2, 2, 3)
|
||||
spacerItem3 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
|
||||
self.gridLayout_2.addItem(spacerItem3, 16, 1, 1, 1)
|
||||
spacerItem4 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
|
||||
self.gridLayout_2.addItem(spacerItem4, 15, 1, 1, 1)
|
||||
self.gridLayout_2.addWidget(self.pushButton_confirmLabel, 14, 2, 2, 3)
|
||||
self.label_correctStart = QtWidgets.QLabel(self.groupBox_4)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.label_correctStart.sizePolicy().hasHeightForWidth())
|
||||
self.label_correctStart.setSizePolicy(sizePolicy)
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("Times New Roman")
|
||||
font.setPointSize(14)
|
||||
self.label_correctStart.setFont(font)
|
||||
self.label_correctStart.setObjectName("label_correctStart")
|
||||
self.gridLayout_2.addWidget(self.label_correctStart, 6, 0, 1, 1)
|
||||
self.verticalLayout_left.addWidget(self.groupBox_4)
|
||||
spacerItem5 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
|
||||
self.verticalLayout_left.addItem(spacerItem5)
|
||||
@ -739,14 +723,20 @@ class Ui_MainWindow(object):
|
||||
self.lineEdit_back_add_second.setText(_translate("MainWindow", "60"))
|
||||
self.lineEdit_back_add_second.setPlaceholderText(_translate("MainWindow", "信号显示事件后多少秒"))
|
||||
self.groupBox_4.setTitle(_translate("MainWindow", "打标操作"))
|
||||
self.pushButton_left.setText(_translate("MainWindow", "上一个事件(A)"))
|
||||
self.pushButton_left.setShortcut(_translate("MainWindow", "A"))
|
||||
self.label_correctStart.setText(_translate("MainWindow", "修正后起始时间(s)"))
|
||||
self.checkBox_examineLabeled.setText(_translate("MainWindow", "仅检查未确定打标参数的事件"))
|
||||
self.label_quick_remark_input.setText(_translate("MainWindow", "快速备注输入"))
|
||||
self.label_correctEnd.setText(_translate("MainWindow", "修正后终止时间(s)"))
|
||||
self.label_score.setText(_translate("MainWindow", "标签类型"))
|
||||
self.radioButton_1_class.setText(_translate("MainWindow", "一类(U)"))
|
||||
self.radioButton_1_class.setShortcut(_translate("MainWindow", "U"))
|
||||
self.radioButton_2_class.setText(_translate("MainWindow", "二类(I)"))
|
||||
self.radioButton_2_class.setShortcut(_translate("MainWindow", "I"))
|
||||
self.radioButton_3_class.setText(_translate("MainWindow", "删除(O)"))
|
||||
self.radioButton_3_class.setShortcut(_translate("MainWindow", "O"))
|
||||
self.pushButton_quick_remark_input_waitingForTalk.setText(_translate("MainWindow", "待讨论(J)"))
|
||||
self.pushButton_quick_remark_input_waitingForTalk.setShortcut(_translate("MainWindow", "J"))
|
||||
self.pushButton_right.setText(_translate("MainWindow", "下一个事件(D)"))
|
||||
self.pushButton_right.setShortcut(_translate("MainWindow", "D"))
|
||||
self.label_remark.setText(_translate("MainWindow", "备注"))
|
||||
self.label_quick_remark_input.setText(_translate("MainWindow", "快速备注输入"))
|
||||
self.label_events.setText(_translate("MainWindow", "事件类型"))
|
||||
self.radioButton_OSA.setText(_translate("MainWindow", "OSA"))
|
||||
self.radioButton_OSA.setShortcut(_translate("MainWindow", "1"))
|
||||
@ -756,17 +746,11 @@ class Ui_MainWindow(object):
|
||||
self.radioButton_MSA.setShortcut(_translate("MainWindow", "3"))
|
||||
self.radioButton_HPY.setText(_translate("MainWindow", "HPY"))
|
||||
self.radioButton_HPY.setShortcut(_translate("MainWindow", "4"))
|
||||
self.label_remark.setText(_translate("MainWindow", "备注"))
|
||||
self.pushButton_right.setText(_translate("MainWindow", "下一个事件(D)"))
|
||||
self.pushButton_right.setShortcut(_translate("MainWindow", "D"))
|
||||
self.label_score.setText(_translate("MainWindow", "标签类型"))
|
||||
self.radioButton_1_class.setText(_translate("MainWindow", "一类(U)"))
|
||||
self.radioButton_1_class.setShortcut(_translate("MainWindow", "U"))
|
||||
self.radioButton_2_class.setText(_translate("MainWindow", "二类(I)"))
|
||||
self.radioButton_2_class.setShortcut(_translate("MainWindow", "I"))
|
||||
self.radioButton_3_class.setText(_translate("MainWindow", "删除(O)"))
|
||||
self.radioButton_3_class.setShortcut(_translate("MainWindow", "O"))
|
||||
self.pushButton_left.setText(_translate("MainWindow", "上一个事件(A)"))
|
||||
self.pushButton_left.setShortcut(_translate("MainWindow", "A"))
|
||||
self.checkBox_examineLabeled.setText(_translate("MainWindow", "仅检查未确定打标参数的事件"))
|
||||
self.pushButton_confirmLabel.setText(_translate("MainWindow", "确定打标参数(S)"))
|
||||
self.label_correctStart.setText(_translate("MainWindow", "修正后起始时间(s)"))
|
||||
self.groupBox_5.setTitle(_translate("MainWindow", "逐帧检查"))
|
||||
self.pushButton_next10s.setText(_translate("MainWindow", "+10s"))
|
||||
self.pushButton_previous10s.setText(_translate("MainWindow", "-10s"))
|
||||
|
504
MainWindow.ui
504
MainWindow.ui
@ -437,122 +437,7 @@
|
||||
<string>打标操作</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout_2" columnstretch="0,0,0,0,0">
|
||||
<item row="5" column="2" colspan="3">
|
||||
<widget class="QLineEdit" name="lineEdit_remark">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Times New Roman</family>
|
||||
<pointsize>14</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="15" column="0">
|
||||
<widget class="QPushButton" name="pushButton_left">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Times New Roman</family>
|
||||
<pointsize>14</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>上一个事件(A)</string>
|
||||
</property>
|
||||
<property name="shortcut">
|
||||
<string>A</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="7" column="2" colspan="3">
|
||||
<widget class="QLineEdit" name="lineEdit_correctStart">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Times New Roman</family>
|
||||
<pointsize>14</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="7" column="0">
|
||||
<widget class="QLabel" name="label_correctStart">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Times New Roman</family>
|
||||
<pointsize>14</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>修正后起始时间(s)</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="0" colspan="4">
|
||||
<widget class="QCheckBox" name="checkBox_examineLabeled">
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Times New Roman</family>
|
||||
<pointsize>14</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>仅检查未确定打标参数的事件</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="6" column="0">
|
||||
<widget class="QLabel" name="label_quick_remark_input">
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Times New Roman</family>
|
||||
<pointsize>14</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>快速备注输入</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="9" column="2" colspan="3">
|
||||
<widget class="QLineEdit" name="lineEdit_correctEnd">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Times New Roman</family>
|
||||
<pointsize>14</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="9" column="0">
|
||||
<item row="8" column="0">
|
||||
<widget class="QLabel" name="label_correctEnd">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
|
||||
@ -571,7 +456,141 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="0" colspan="5">
|
||||
<item row="8" column="2" colspan="3">
|
||||
<widget class="QLineEdit" name="lineEdit_correctEnd">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Times New Roman</family>
|
||||
<pointsize>14</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="0" colspan="5">
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_12">
|
||||
<item>
|
||||
<widget class="QLabel" name="label_score">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Times New Roman</family>
|
||||
<pointsize>14</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>标签类型</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QRadioButton" name="radioButton_1_class">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Times New Roman</family>
|
||||
<pointsize>14</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>一类(U)</string>
|
||||
</property>
|
||||
<property name="shortcut">
|
||||
<string>U</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QRadioButton" name="radioButton_2_class">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Times New Roman</family>
|
||||
<pointsize>14</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>二类(I)</string>
|
||||
</property>
|
||||
<property name="shortcut">
|
||||
<string>I</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QRadioButton" name="radioButton_3_class">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Times New Roman</family>
|
||||
<pointsize>14</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>删除(O)</string>
|
||||
</property>
|
||||
<property name="shortcut">
|
||||
<string>O</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item row="14" column="1">
|
||||
<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="6" column="2" colspan="3">
|
||||
<widget class="QLineEdit" name="lineEdit_correctStart">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Times New Roman</family>
|
||||
<pointsize>14</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0" colspan="5">
|
||||
<widget class="QLabel" name="label_BCG_event">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Expanding" vsizetype="Preferred">
|
||||
@ -595,7 +614,7 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="6" column="2" colspan="3">
|
||||
<item row="5" column="2" colspan="3">
|
||||
<widget class="QPushButton" name="pushButton_quick_remark_input_waitingForTalk">
|
||||
<property name="font">
|
||||
<font>
|
||||
@ -611,7 +630,74 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="0" colspan="5">
|
||||
<item row="15" column="0">
|
||||
<widget class="QPushButton" name="pushButton_right">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Times New Roman</family>
|
||||
<pointsize>14</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>下一个事件(D)</string>
|
||||
</property>
|
||||
<property name="shortcut">
|
||||
<string>D</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="15" column="1">
|
||||
<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="4" column="0">
|
||||
<widget class="QLabel" name="label_remark">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Times New Roman</family>
|
||||
<pointsize>14</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>备注</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="5" column="0">
|
||||
<widget class="QLabel" name="label_quick_remark_input">
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Times New Roman</family>
|
||||
<pointsize>14</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>快速备注输入</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="0" colspan="5">
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_radioButton">
|
||||
<item>
|
||||
<widget class="QLabel" name="label_events">
|
||||
@ -722,34 +808,10 @@
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item row="1" column="0" colspan="5">
|
||||
<widget class="QLabel" name="label_PSG_event">
|
||||
<item row="4" column="2" colspan="3">
|
||||
<widget class="QLineEdit" name="lineEdit_remark">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Expanding" vsizetype="Preferred">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Times New Roman</family>
|
||||
<pointsize>12</pointsize>
|
||||
<weight>50</weight>
|
||||
<bold>false</bold>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="5" column="0">
|
||||
<widget class="QLabel" name="label_remark">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
|
||||
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
@ -760,13 +822,10 @@
|
||||
<pointsize>14</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>备注</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="16" column="0">
|
||||
<widget class="QPushButton" name="pushButton_right">
|
||||
<item row="14" column="0">
|
||||
<widget class="QPushButton" name="pushButton_left">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
@ -780,103 +839,27 @@
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>下一个事件(D)</string>
|
||||
<string>上一个事件(A)</string>
|
||||
</property>
|
||||
<property name="shortcut">
|
||||
<string>D</string>
|
||||
<string>A</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="0" colspan="5">
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_12">
|
||||
<item>
|
||||
<widget class="QLabel" name="label_score">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Times New Roman</family>
|
||||
<pointsize>14</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>标签类型</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QRadioButton" name="radioButton_1_class">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Times New Roman</family>
|
||||
<pointsize>14</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>一类(U)</string>
|
||||
</property>
|
||||
<property name="shortcut">
|
||||
<string>U</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QRadioButton" name="radioButton_2_class">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Times New Roman</family>
|
||||
<pointsize>14</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>二类(I)</string>
|
||||
</property>
|
||||
<property name="shortcut">
|
||||
<string>I</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QRadioButton" name="radioButton_3_class">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Times New Roman</family>
|
||||
<pointsize>14</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>删除(O)</string>
|
||||
</property>
|
||||
<property name="shortcut">
|
||||
<string>O</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
<item row="0" column="0" colspan="4">
|
||||
<widget class="QCheckBox" name="checkBox_examineLabeled">
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Times New Roman</family>
|
||||
<pointsize>14</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>仅检查未确定打标参数的事件</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="15" column="2" rowspan="2" colspan="3">
|
||||
<item row="14" column="2" rowspan="2" colspan="3">
|
||||
<widget class="QPushButton" name="pushButton_confirmLabel">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Minimum" vsizetype="Preferred">
|
||||
@ -895,31 +878,24 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="16" column="1">
|
||||
<spacer name="horizontalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
<item row="6" column="0">
|
||||
<widget class="QLabel" name="label_correctStart">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Times New Roman</family>
|
||||
<pointsize>14</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="15" column="1">
|
||||
<spacer name="horizontalSpacer_2">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
<property name="text">
|
||||
<string>修正后起始时间(s)</string>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
|
@ -157,12 +157,11 @@ class MainWindow(QMainWindow, Ui_MainWindow):
|
||||
if self.dir_path:
|
||||
logging.info("Loading Data Path...")
|
||||
self.PSG_Data_Path = Path(os.path.join(self.dir_path, "PSG"))
|
||||
self.PSG_Label_Path = Path(os.path.join(self.dir_path, "PSG_label"))
|
||||
self.BCG_Data_Path = Path(os.path.join(self.dir_path, "BCG"))
|
||||
self.BCG_Label_Path = Path(os.path.join(self.dir_path, "BCG_label"))
|
||||
self.Artifact_Label_Path = Path(os.path.join(self.dir_path, "Artifact_label"))
|
||||
self.Artifact_Offset_Path = Path(os.path.join(self.dir_path, "Artifact_label", "20220421Artifact_offset_value.xlsx"))
|
||||
if self.PSG_Data_Path.exists() and self.PSG_Label_Path.exists() and self.BCG_Data_Path.exists() and self.BCG_Label_Path.exists() and self.Artifact_Label_Path.exists() and self.Artifact_Label_Path.exists():
|
||||
if self.PSG_Data_Path.exists() and self.BCG_Data_Path.exists() and self.BCG_Label_Path.exists() and self.Artifact_Label_Path.exists() and self.Artifact_Label_Path.exists():
|
||||
sampIDs = os.listdir(self.BCG_Data_Path)
|
||||
sampID_for_comboBox = []
|
||||
for sampID in sampIDs:
|
||||
@ -171,7 +170,6 @@ class MainWindow(QMainWindow, Ui_MainWindow):
|
||||
bcg_path = self.BCG_Data_Path / f"{sampID}samp.npy"
|
||||
ecg_path = self.PSG_Data_Path / f"A{str(sampID).rjust(7, '0')}.edf"
|
||||
bcg_label_path = self.BCG_Label_Path / f"export{sampID}_all.csv"
|
||||
ecg_label_path = self.PSG_Label_Path / f"export{sampID}.csv"
|
||||
if not bcg_path.exists():
|
||||
logging.error(f"Can't find {bcg_path}!")
|
||||
self.msgBox.setText(f"找不到数据{bcg_path}")
|
||||
@ -190,12 +188,6 @@ class MainWindow(QMainWindow, Ui_MainWindow):
|
||||
self.msgBox.setIcon(QMessageBox.Critical)
|
||||
self.msgBox.exec()
|
||||
return
|
||||
if not ecg_label_path.exists():
|
||||
logging.error(f"Can't find {ecg_label_path}!")
|
||||
self.msgBox.setText(f"找不到数据{ecg_label_path}")
|
||||
self.msgBox.setIcon(QMessageBox.Critical)
|
||||
self.msgBox.exec()
|
||||
return
|
||||
self.comboBox_sampID.setEnabled(True)
|
||||
self.lineEdit_start_bcg_index.setEnabled(True)
|
||||
self.comboBox_sampID.addItems(sampID_for_comboBox)
|
||||
@ -307,7 +299,7 @@ class MainWindow(QMainWindow, Ui_MainWindow):
|
||||
self.msgBox.setIcon(QMessageBox.Information)
|
||||
self.msgBox.exec()
|
||||
self.pd.to_csv(Path(os.path.join(self.BCG_Label_Path, f"export{self.comboBox_sampID.currentText()}_all.csv")), mode='w', index=None, encoding="gbk")
|
||||
self.show_one_event(self.plotEventIndex, self.plotEventIndex, front_add_second=self.front_add_second, back_add_second=self.back_add_second)
|
||||
self.show_one_event(self.plotEventIndex, front_add_second=self.front_add_second, back_add_second=self.back_add_second)
|
||||
if not str(self.pd.at[self.bcg_event_label_index_list[self.plotEventIndex], "remark"]) == "nan":
|
||||
self.lineEdit_remark.setText(str(self.pd.at[self.bcg_event_label_index_list[self.plotEventIndex], "remark"]))
|
||||
else:
|
||||
@ -329,7 +321,7 @@ class MainWindow(QMainWindow, Ui_MainWindow):
|
||||
if self.checkBox_examineLabeled.isChecked() == True:
|
||||
while self.pd.at[self.bcg_event_label_index_list[self.plotEventIndex], "isLabeled"] == 1 and self.plotEventIndex > self.start_bcg_index:
|
||||
self.plotEventIndex = self.plotEventIndex - 1
|
||||
self.show_one_event(self.plotEventIndex, self.plotEventIndex, front_add_second=self.front_add_second,
|
||||
self.show_one_event(self.plotEventIndex, front_add_second=self.front_add_second,
|
||||
back_add_second=self.back_add_second)
|
||||
if not str(self.pd.at[self.bcg_event_label_index_list[self.plotEventIndex], "remark"]) == "nan":
|
||||
self.lineEdit_remark.setText(str(self.pd.at[self.bcg_event_label_index_list[self.plotEventIndex], "remark"]))
|
||||
@ -362,7 +354,7 @@ class MainWindow(QMainWindow, Ui_MainWindow):
|
||||
if self.checkBox_examineLabeled.isChecked() == True:
|
||||
while self.pd.at[self.bcg_event_label_index_list[self.plotEventIndex], "isLabeled"] == 1 and self.plotEventIndex < len(self.bcg_event_label_filtered_df) - 1:
|
||||
self.plotEventIndex = self.plotEventIndex + 1
|
||||
self.show_one_event(self.plotEventIndex, self.plotEventIndex, front_add_second=self.front_add_second,
|
||||
self.show_one_event(self.plotEventIndex, front_add_second=self.front_add_second,
|
||||
back_add_second=self.back_add_second)
|
||||
if not str(self.pd.at[self.bcg_event_label_index_list[self.plotEventIndex], "remark"]) == "nan":
|
||||
self.lineEdit_remark.setText(str(self.pd.at[self.bcg_event_label_index_list[self.plotEventIndex], "remark"]))
|
||||
@ -459,7 +451,7 @@ class MainWindow(QMainWindow, Ui_MainWindow):
|
||||
self.textBrowser_update("操作:向前10秒")
|
||||
self.radioButton_OSA.setChecked(True)
|
||||
self.time_move_count = self.time_move_count - 10
|
||||
self.show_new_event(self.plotEventIndex, self.plotEventIndex, front_add_second=self.front_add_second,
|
||||
self.show_new_event(self.plotEventIndex, front_add_second=self.front_add_second,
|
||||
back_add_second=self.back_add_second, time_move_count = self.time_move_count)
|
||||
|
||||
# -30s的槽函数
|
||||
@ -469,7 +461,7 @@ class MainWindow(QMainWindow, Ui_MainWindow):
|
||||
self.textBrowser_update("操作:向前30秒")
|
||||
self.radioButton_OSA.setChecked(True)
|
||||
self.time_move_count = self.time_move_count - 30
|
||||
self.show_new_event(self.plotEventIndex, self.plotEventIndex, front_add_second=self.front_add_second,
|
||||
self.show_new_event(self.plotEventIndex, front_add_second=self.front_add_second,
|
||||
back_add_second=self.back_add_second, time_move_count = self.time_move_count)
|
||||
|
||||
# -60s的槽函数
|
||||
@ -479,7 +471,7 @@ class MainWindow(QMainWindow, Ui_MainWindow):
|
||||
self.textBrowser_update("操作:向前60秒")
|
||||
self.radioButton_OSA.setChecked(True)
|
||||
self.time_move_count = self.time_move_count - 60
|
||||
self.show_new_event(self.plotEventIndex, self.plotEventIndex, front_add_second=self.front_add_second,
|
||||
self.show_new_event(self.plotEventIndex, front_add_second=self.front_add_second,
|
||||
back_add_second=self.back_add_second, time_move_count = self.time_move_count)
|
||||
|
||||
# +10s的槽函数
|
||||
@ -489,7 +481,7 @@ class MainWindow(QMainWindow, Ui_MainWindow):
|
||||
self.textBrowser_update("操作:向后10秒")
|
||||
self.radioButton_OSA.setChecked(True)
|
||||
self.time_move_count = self.time_move_count + 10
|
||||
self.show_new_event(self.plotEventIndex, self.plotEventIndex, front_add_second=self.front_add_second,
|
||||
self.show_new_event(self.plotEventIndex, front_add_second=self.front_add_second,
|
||||
back_add_second=self.back_add_second, time_move_count = self.time_move_count)
|
||||
|
||||
# +30s的槽函数
|
||||
@ -499,7 +491,7 @@ class MainWindow(QMainWindow, Ui_MainWindow):
|
||||
self.textBrowser_update("操作:向后30秒")
|
||||
self.radioButton_OSA.setChecked(True)
|
||||
self.time_move_count = self.time_move_count + 30
|
||||
self.show_new_event(self.plotEventIndex, self.plotEventIndex, front_add_second=self.front_add_second,
|
||||
self.show_new_event(self.plotEventIndex, front_add_second=self.front_add_second,
|
||||
back_add_second=self.back_add_second, time_move_count = self.time_move_count)
|
||||
|
||||
# +30s的槽函数
|
||||
@ -509,7 +501,7 @@ class MainWindow(QMainWindow, Ui_MainWindow):
|
||||
self.textBrowser_update("操作:向后60秒")
|
||||
self.radioButton_OSA.setChecked(True)
|
||||
self.time_move_count = self.time_move_count + 60
|
||||
self.show_new_event(self.plotEventIndex, self.plotEventIndex, front_add_second=self.front_add_second,
|
||||
self.show_new_event(self.plotEventIndex, front_add_second=self.front_add_second,
|
||||
back_add_second=self.back_add_second, time_move_count = self.time_move_count)
|
||||
|
||||
# +60s的槽函数
|
||||
@ -603,20 +595,14 @@ class MainWindow(QMainWindow, Ui_MainWindow):
|
||||
self.start_bcg_index = int(self.lineEdit_start_bcg_index.text())
|
||||
self.plotEventIndex = self.start_bcg_index
|
||||
|
||||
self.ecg_start_time = None
|
||||
|
||||
# 用来显示颜色时按点匹配事件
|
||||
self.ecg_event_label = None
|
||||
self.bcg_event_label = None
|
||||
self.spo2_event_label = None
|
||||
self.artifact_event_label = None
|
||||
|
||||
# 仅包含关注暂停事件的列表
|
||||
self.ecg_event_label_filtered_df = None
|
||||
self.bcg_event_label_filtered_df = None
|
||||
|
||||
# 所有事件列表
|
||||
self.ecg_event_label_df = None
|
||||
self.bcg_event_label_df = None
|
||||
|
||||
# 各通道信号
|
||||
@ -659,13 +645,6 @@ class MainWindow(QMainWindow, Ui_MainWindow):
|
||||
signal_label = file.getSignalLabels()
|
||||
logging.debug(f"{self.sampNo} EDF file signal label : {signal_label}")
|
||||
|
||||
self.ecg_start_time = file.getStartdatetime()
|
||||
|
||||
# 根据PSG记录长度生成事件表
|
||||
self.ecg_event_label = np.zeros(
|
||||
int(file.getFileDuration()) * self.frequency + self.extend_second * self.frequency)
|
||||
self.spo2_event_label = np.zeros(
|
||||
int(file.getFileDuration()) * self.frequency + self.extend_second * self.frequency)
|
||||
# 打印PSG信息
|
||||
file.file_info_long()
|
||||
|
||||
@ -723,56 +702,15 @@ class MainWindow(QMainWindow, Ui_MainWindow):
|
||||
|
||||
def read_event(self):
|
||||
bcg_label_path = self.BCG_Label_Path / f"export{self.sampNo}_all.csv"
|
||||
ecg_label_path = self.PSG_Label_Path / f"export{self.sampNo}.csv"
|
||||
|
||||
if not bcg_label_path.exists():
|
||||
logging.error(f"Can't find {bcg_label_path} !")
|
||||
raise FileNotFoundError(f"Can't find {bcg_label_path} !")
|
||||
|
||||
if not ecg_label_path.exists():
|
||||
logging.error(f"Can't find {ecg_label_path} !")
|
||||
raise FileNotFoundError(f"Can't find {ecg_label_path} !")
|
||||
|
||||
df = pd.read_csv(ecg_label_path, encoding="gbk")
|
||||
self.ecg_event_label_df = df
|
||||
|
||||
# 过滤不关注的事件
|
||||
df2 = df[df["Event type"].isin(self.focus_event_list)]
|
||||
# 根据epoch进行排列方便索引
|
||||
df2 = df2.sort_values(by='Epoch')
|
||||
self.ecg_event_label_filtered_df = df2
|
||||
|
||||
logging.info("Traversaling PSG events...")
|
||||
self.textBrowser_update("提示:正在遍历PSG事件")
|
||||
for one_data in tqdm(df.index, ncols=80):
|
||||
one_data = df.loc[one_data]
|
||||
|
||||
# 通过开始时间推算事件起始点与结束点
|
||||
event_start_time = datetime.strptime(one_data["Date"] + " " + one_data["Time"], '%Y/%m/%d %H:%M:%S')
|
||||
SP = (event_start_time - self.ecg_start_time).seconds
|
||||
# 对括号进行切分,避免Duration 20 (20) 这种带括号的问题
|
||||
EP = int(SP + float(one_data["Duration"].split("(")[0]))
|
||||
SP *= self.frequency
|
||||
EP *= self.frequency
|
||||
|
||||
# 对事件重新编码并存到事件记录表中
|
||||
if one_data["Event type"] == "Hypopnea":
|
||||
self.ecg_event_label[SP:EP] = 1
|
||||
elif one_data["Event type"] == "Central apnea":
|
||||
self.ecg_event_label[SP:EP] = 2
|
||||
elif one_data["Event type"] == "Obstructive apnea":
|
||||
self.ecg_event_label[SP:EP] = 3
|
||||
elif one_data["Event type"] == "Mixed apnea":
|
||||
self.ecg_event_label[SP:EP] = 4
|
||||
elif one_data["Event type"] == "Desaturation":
|
||||
self.spo2_event_label[SP:EP] = 5
|
||||
logging.info("Finished Traversal PSG events")
|
||||
self.textBrowser_update("提示:完成遍历PSG事件")
|
||||
|
||||
# 读取心晓事件
|
||||
df = pd.read_csv(bcg_label_path, encoding="gbk")
|
||||
df["new_start"] = df["new_start"].astype("int")
|
||||
df["new_end"] = df["new_end"].astype("int")
|
||||
df["Start"] = df["Start"].astype("int")
|
||||
df["End"] = df["End"].astype("int")
|
||||
self.bcg_event_label_df = df
|
||||
|
||||
# 过滤不关注事件
|
||||
@ -784,8 +722,8 @@ class MainWindow(QMainWindow, Ui_MainWindow):
|
||||
self.textBrowser_update("提示:正在遍历心晓事件")
|
||||
for one_data in tqdm(df.index):
|
||||
one_data = df.loc[one_data]
|
||||
SP = one_data["new_start"] * self.frequency
|
||||
EP = one_data["new_end"] * self.frequency
|
||||
SP = one_data["Start"] * self.frequency
|
||||
EP = one_data["End"] * self.frequency
|
||||
|
||||
if one_data["Event type"] == "Hypopnea":
|
||||
self.bcg_event_label[SP:EP] = 1
|
||||
@ -820,53 +758,32 @@ class MainWindow(QMainWindow, Ui_MainWindow):
|
||||
|
||||
self.artifact_event_label[SP:EP] = artifact_type
|
||||
|
||||
# assert len(self.ecg_event_label_filtered_df) == len(self.bcg_event_label_filtered_df), \
|
||||
# f"PSG与心晓事件数量不一致, PSG事件数量{len(self.ecg_event_label_filtered_df)},
|
||||
# 心晓事件数量{len(self.bcg_event_label_filtered_df)}"
|
||||
|
||||
def show_one_event(self, bcg_index: int, ecg_index: int, front_add_second: int, back_add_second: int):
|
||||
def show_one_event(self, bcg_index: int, front_add_second: int, back_add_second: int):
|
||||
"""
|
||||
:param bcg_index: 心晓事件在csv中行号
|
||||
:param ecg_index: PSG事件在csv中序号
|
||||
:param front_add_second: 向前延伸时间
|
||||
:param back_add_second: 向后延伸时间
|
||||
:return:
|
||||
"""
|
||||
# 获取事件实际在csv文件中的序号
|
||||
bcg_real_index = self.bcg_event_label_filtered_df.index[bcg_index],
|
||||
ecg_real_index = self.ecg_event_label_filtered_df.index[ecg_index],
|
||||
one_bcg_data = self.bcg_event_label_df.loc[bcg_real_index]
|
||||
one_ecg_data = self.ecg_event_label_df.loc[ecg_real_index]
|
||||
|
||||
# 获取ECG事件开始与结束时间
|
||||
event_start_time = datetime.strptime(one_ecg_data["Date"] + " " + one_ecg_data["Time"], '%Y/%m/%d %H:%M:%S')
|
||||
ecg_SP = (event_start_time - self.ecg_start_time).seconds
|
||||
ecg_duration = int(float(str(one_ecg_data["Duration"]).split("(")[0]) + 0.5)
|
||||
ecg_EP = ecg_SP + ecg_duration
|
||||
|
||||
# 获取BCG事件开始与结束时间
|
||||
bcg_SP = one_bcg_data["new_start"]
|
||||
bcg_EP = one_bcg_data["new_end"]
|
||||
bcg_SP = one_bcg_data["Start"]
|
||||
bcg_EP = one_bcg_data["End"]
|
||||
self.bcg_SP = bcg_SP
|
||||
self.bcg_EP = bcg_EP
|
||||
bcg_duration = bcg_EP - bcg_SP
|
||||
|
||||
logging.info(f"sampNo:{self.sampNo} "
|
||||
f"bcg[index:{bcg_index} epoch:{one_bcg_data['Epoch']} event:{one_bcg_data['Event type']}] "
|
||||
f"ecg:[index:{ecg_index} epoch:{one_ecg_data['Epoch']} event:{one_ecg_data['Event type']}]")
|
||||
|
||||
if one_bcg_data['Event type'] != one_ecg_data['Event type']:
|
||||
logging.error(f"sampNo:{self.sampNo} PSG事件与心晓时间不一致,请排查"
|
||||
f"bcg[index:{bcg_index} epoch:{one_bcg_data['Epoch']} event:{one_bcg_data['Event type']}] "
|
||||
f"ecg:[index:{ecg_index} epoch:{one_ecg_data['Epoch']} event:{one_ecg_data['Event type']}]")
|
||||
raise ValueError()
|
||||
f"ecg:[index:{bcg_index} epoch:{one_bcg_data['Epoch']} event:{one_bcg_data['Event type']}]")
|
||||
|
||||
self.lineEdit_correctStart.setText(str(self.bcg_SP))
|
||||
self.lineEdit_correctEnd.setText(str(self.bcg_EP))
|
||||
|
||||
# 进行向两边延展
|
||||
ecg_SP = ecg_SP - front_add_second
|
||||
ecg_EP = ecg_EP + back_add_second
|
||||
bcg_SP = bcg_SP - front_add_second
|
||||
bcg_EP = bcg_EP + back_add_second
|
||||
|
||||
@ -880,20 +797,20 @@ class MainWindow(QMainWindow, Ui_MainWindow):
|
||||
|
||||
# 绘制 Flow1
|
||||
self.ax0 = self.figure.add_subplot(gs[0])
|
||||
self.plt_channel(plt_=plt, SP=ecg_SP, EP=ecg_EP, channel="Flow T")
|
||||
self.plt_channel(plt_=plt, SP=bcg_SP, EP=bcg_EP, channel="Flow T")
|
||||
|
||||
# 绘制 Flow2
|
||||
self.ax1 = self.figure.add_subplot(gs[1], sharex=self.ax0)
|
||||
self.plt_channel(plt_=plt, SP=ecg_SP, EP=ecg_EP, channel="Flow P")
|
||||
self.plt_channel(plt_=plt, SP=bcg_SP, EP=bcg_EP, channel="Flow P")
|
||||
|
||||
self.ax2 = self.figure.add_subplot(gs[2], sharex=self.ax0)
|
||||
self.plt_channel(plt_=plt, SP=ecg_SP, EP=ecg_EP, channel="Effort Tho")
|
||||
self.plt_channel(plt_=plt, SP=bcg_SP, EP=bcg_EP, channel="Effort Tho")
|
||||
|
||||
self.ax3 = self.figure.add_subplot(gs[3], sharex=self.ax0)
|
||||
self.plt_channel(plt_=plt, SP=ecg_SP, EP=ecg_EP, channel="Effort Abd")
|
||||
self.plt_channel(plt_=plt, SP=bcg_SP, EP=bcg_EP, channel="Effort Abd")
|
||||
|
||||
self.ax4 = self.figure.add_subplot(gs[4], sharex=self.ax0)
|
||||
self.plt_channel(plt_=plt, SP=ecg_SP, EP=ecg_EP, channel="SpO2", event_code=[5])
|
||||
self.plt_channel(plt_=plt, SP=bcg_SP, EP=bcg_EP, channel="SpO2", event_code=[5])
|
||||
|
||||
self.ax5 = self.figure.add_subplot(gs[5], sharex=self.ax0)
|
||||
self.plt_channel(plt_=plt, SP=bcg_SP, EP=bcg_EP, channel="orgdata",
|
||||
@ -906,9 +823,7 @@ class MainWindow(QMainWindow, Ui_MainWindow):
|
||||
event_show_under=False,
|
||||
title=f"sampNo:{self.sampNo} Index:{bcg_index + 1}/{len(self.bcg_event_label_filtered_df)}")
|
||||
|
||||
self.label_PSG_event.setText(f"PSG sampNo:{self.sampNo} Index:{ecg_index + 1}/{len(self.ecg_event_label_filtered_df)} "
|
||||
f"Epoch:{one_ecg_data['Epoch']} Duration:{ecg_duration}s")
|
||||
self.label_BCG_event.setText(f"心晓 sampNo:{self.sampNo} Index:{bcg_index + 1}/{len(self.bcg_event_label_filtered_df)} "
|
||||
self.label_BCG_event.setText(f"sampNo:{self.sampNo} Index:{bcg_index + 1}/{len(self.bcg_event_label_filtered_df)} "
|
||||
f"Epoch:{one_bcg_data['Epoch']} Duration:{bcg_duration}s")
|
||||
|
||||
# figManager = plt.get_current_fig_manager()
|
||||
@ -939,7 +854,7 @@ class MainWindow(QMainWindow, Ui_MainWindow):
|
||||
|
||||
for j in event_code:
|
||||
if channel == "SpO2":
|
||||
mask = self.spo2_event_label[SP * self.frequency:EP * self.frequency] == j
|
||||
mask = self.bcg_event_label[SP * self.frequency:EP * self.frequency] == j
|
||||
elif channel == "orgdata" or channel == "0.7lowpass_resp":
|
||||
if j <= 5:
|
||||
mask = self.bcg_event_label[SP * self.frequency:EP * self.frequency] == j
|
||||
@ -947,7 +862,7 @@ class MainWindow(QMainWindow, Ui_MainWindow):
|
||||
mask = self.artifact_event_label[SP * self.frequency:EP * self.frequency] == j
|
||||
linestyle = "-"
|
||||
else:
|
||||
mask = self.ecg_event_label[SP * self.frequency:EP * self.frequency] == j
|
||||
mask = self.bcg_event_label[SP * self.frequency:EP * self.frequency] == j
|
||||
|
||||
if event_show_under:
|
||||
min_point = self.signal_select[channel][SP * self.frequency:EP * self.frequency].min()
|
||||
@ -973,10 +888,9 @@ class MainWindow(QMainWindow, Ui_MainWindow):
|
||||
# print(xticks)
|
||||
# plt_.xticks(*xticks) # 去掉x轴
|
||||
|
||||
def show_new_event(self, bcg_index: int, ecg_index: int, front_add_second: int, back_add_second: int, time_move_count: int):
|
||||
def show_new_event(self, bcg_index: int, front_add_second: int, back_add_second: int, time_move_count: int):
|
||||
"""
|
||||
:param bcg_index: 心晓事件在csv中行号
|
||||
:param ecg_index: PSG事件在csv中序号
|
||||
:param front_add_second: 向前延伸时间
|
||||
:param back_add_second: 向后延伸时间
|
||||
:param time_move_count: 时间轴移动的时间
|
||||
@ -984,34 +898,18 @@ class MainWindow(QMainWindow, Ui_MainWindow):
|
||||
"""
|
||||
# 获取事件实际在csv文件中的序号
|
||||
bcg_real_index = self.bcg_event_label_filtered_df.index[bcg_index],
|
||||
ecg_real_index = self.ecg_event_label_filtered_df.index[ecg_index],
|
||||
one_bcg_data = self.bcg_event_label_df.loc[bcg_real_index]
|
||||
one_ecg_data = self.ecg_event_label_df.loc[ecg_real_index]
|
||||
|
||||
# 获取ECG事件开始与结束时间
|
||||
event_start_time = datetime.strptime(one_ecg_data["Date"] + " " + one_ecg_data["Time"], '%Y/%m/%d %H:%M:%S')
|
||||
ecg_SP = (event_start_time - self.ecg_start_time).seconds
|
||||
ecg_duration = int(float(str(one_ecg_data["Duration"]).split("(")[0]) + 0.5)
|
||||
ecg_EP = ecg_SP + ecg_duration
|
||||
|
||||
# 获取BCG事件开始与结束时间
|
||||
bcg_SP = one_bcg_data["new_start"]
|
||||
bcg_EP = one_bcg_data["new_end"]
|
||||
bcg_SP = one_bcg_data["Start"]
|
||||
bcg_EP = one_bcg_data["End"]
|
||||
bcg_duration = bcg_EP - bcg_SP
|
||||
|
||||
logging.info(f"sampNo:{self.sampNo} "
|
||||
f"bcg[index:{bcg_index} epoch:{one_bcg_data['Epoch']} event:{one_bcg_data['Event type']}] "
|
||||
f"ecg:[index:{ecg_index} epoch:{one_ecg_data['Epoch']} event:{one_ecg_data['Event type']}]")
|
||||
|
||||
if one_bcg_data['Event type'] != one_ecg_data['Event type']:
|
||||
logging.error(f"sampNo:{self.sampNo} PSG事件与心晓时间不一致,请排查"
|
||||
f"bcg[index:{bcg_index} epoch:{one_bcg_data['Epoch']} event:{one_bcg_data['Event type']}] "
|
||||
f"ecg:[index:{ecg_index} epoch:{one_ecg_data['Epoch']} event:{one_ecg_data['Event type']}]")
|
||||
raise ValueError()
|
||||
f"ecg:[index:{bcg_index} epoch:{one_bcg_data['Epoch']} event:{one_bcg_data['Event type']}]")
|
||||
|
||||
# 进行向两边延展
|
||||
ecg_SP = ecg_SP - front_add_second + time_move_count
|
||||
ecg_EP = ecg_EP + back_add_second + time_move_count
|
||||
bcg_SP = bcg_SP - front_add_second + time_move_count
|
||||
bcg_EP = bcg_EP + back_add_second + time_move_count
|
||||
|
||||
@ -1030,20 +928,20 @@ class MainWindow(QMainWindow, Ui_MainWindow):
|
||||
|
||||
# 绘制 Flow1
|
||||
self.ax0 = self.figure.add_subplot(gs[0])
|
||||
self.plt_channel(plt_=plt, SP=ecg_SP, EP=ecg_EP, channel="Flow T")
|
||||
self.plt_channel(plt_=plt, SP=bcg_SP, EP=bcg_EP, channel="Flow T")
|
||||
|
||||
# 绘制 Flow2
|
||||
self.ax1 = self.figure.add_subplot(gs[1], sharex=self.ax0)
|
||||
self.plt_channel(plt_=plt, SP=ecg_SP, EP=ecg_EP, channel="Flow P")
|
||||
self.plt_channel(plt_=plt, SP=bcg_SP, EP=bcg_EP, channel="Flow P")
|
||||
|
||||
self.ax2 = self.figure.add_subplot(gs[2], sharex=self.ax0)
|
||||
self.plt_channel(plt_=plt, SP=ecg_SP, EP=ecg_EP, channel="Effort Tho")
|
||||
self.plt_channel(plt_=plt, SP=bcg_SP, EP=bcg_EP, channel="Effort Tho")
|
||||
|
||||
self.ax3 = self.figure.add_subplot(gs[3], sharex=self.ax0)
|
||||
self.plt_channel(plt_=plt, SP=ecg_SP, EP=ecg_EP, channel="Effort Abd")
|
||||
self.plt_channel(plt_=plt, SP=bcg_SP, EP=bcg_EP, channel="Effort Abd")
|
||||
|
||||
self.ax4 = self.figure.add_subplot(gs[4], sharex=self.ax0)
|
||||
self.plt_channel(plt_=plt, SP=ecg_SP, EP=ecg_EP, channel="SpO2", event_code=[5])
|
||||
self.plt_channel(plt_=plt, SP=bcg_SP, EP=bcg_EP, channel="SpO2", event_code=[5])
|
||||
|
||||
self.ax5 = self.figure.add_subplot(gs[5], sharex=self.ax0)
|
||||
self.plt_channel(plt_=plt, SP=bcg_SP, EP=bcg_EP, channel="orgdata",
|
||||
@ -1056,11 +954,8 @@ class MainWindow(QMainWindow, Ui_MainWindow):
|
||||
event_show_under=False,
|
||||
title=f"sampNo:{self.sampNo} Index:{bcg_index + 1}/{len(self.bcg_event_label_filtered_df)}")
|
||||
|
||||
self.label_PSG_event.setText(
|
||||
f"PSG sampNo:{self.sampNo} Index:{ecg_index + 1}/{len(self.ecg_event_label_filtered_df)} "
|
||||
f"Epoch:{one_ecg_data['Epoch']} Duration:{ecg_duration}s")
|
||||
self.label_BCG_event.setText(
|
||||
f"心晓 sampNo:{self.sampNo} Index:{bcg_index + 1}/{len(self.bcg_event_label_filtered_df)} "
|
||||
f"sampNo:{self.sampNo} Index:{bcg_index + 1}/{len(self.bcg_event_label_filtered_df)} "
|
||||
f"Epoch:{one_bcg_data['Epoch']} Duration:{bcg_duration}s")
|
||||
|
||||
# figManager = plt.get_current_fig_manager()
|
||||
|
48
PSG_label_2_BCG_label.py
Normal file
48
PSG_label_2_BCG_label.py
Normal file
@ -0,0 +1,48 @@
|
||||
import os
|
||||
import pandas as pd
|
||||
import pyedflib
|
||||
from pathlib import Path
|
||||
|
||||
def get_time_to_seconds(time_str):
|
||||
h, m, s = map(int, time_str.split(":"))
|
||||
return h * 3600 + m * 60 + s
|
||||
|
||||
base_event = ["Hypopnea", "Central apnea", "Obstructive apnea", "Mixed apnea"]
|
||||
|
||||
# 输入设置
|
||||
sampID = 888
|
||||
dir_path = r"E:\data_annotation\6SleepApnea_annotation_GUI_demo\data"
|
||||
|
||||
# 数据路径设置
|
||||
PSG_Data_Path = Path(os.path.join(dir_path, "PSG"))
|
||||
PSG_Label_Path = Path(os.path.join(dir_path, "PSG_label"))
|
||||
BCG_Data_Path = Path(os.path.join(dir_path, "BCG"))
|
||||
BCG_Label_Path = Path(os.path.join(dir_path, "BCG_label"))
|
||||
# Artifact_Label_Path = Path(os.path.join(dir_path, "Artifact_label"))
|
||||
# Artifact_Offset_Path = Path(os.path.join(dir_path, "Artifact_label", "20220421Artifact_offset_value.xlsx"))
|
||||
|
||||
# 读取PSG标签
|
||||
df_PSG_label = pd.read_csv(PSG_Label_Path / (f"export" + str(sampID) + ".csv"), encoding="gbk")
|
||||
df_PSG_label = df_PSG_label.loc[:, ~df_PSG_label.columns.str.contains('^Unnamed')]
|
||||
df_PSG_label = df_PSG_label[df_PSG_label["Event type"].isin(base_event)]
|
||||
df_PSG_label['Duration'] = df_PSG_label['Duration'].str.replace(r' \(.*?\)', '', regex=True)
|
||||
|
||||
# 读取EDF文件
|
||||
edf_File = pyedflib.EdfReader(str(PSG_Data_Path / f"A{str(sampID).rjust(7, '0')}.edf"))
|
||||
|
||||
# 获取PSG记录开始时间
|
||||
start_time = str(edf_File.getStartdatetime()).split(" ")[1]
|
||||
start_time_abs = get_time_to_seconds(start_time)
|
||||
|
||||
# 计算起始时间秒数和终止时间秒数
|
||||
df_PSG_label['Start'] = (df_PSG_label['Time'].apply(get_time_to_seconds) - start_time_abs).apply(lambda x: x + 24 * 3600 if x < 0 else x).astype(int)
|
||||
df_PSG_label['End'] = df_PSG_label['Start'] + df_PSG_label['Duration'].astype(float).round(0).astype(int)
|
||||
|
||||
# 打印结果
|
||||
print(df_PSG_label)
|
||||
|
||||
# 写入csv文件
|
||||
df_PSG_label.to_csv(r"E:\data_annotation\6SleepApnea_annotation_GUI_demo\data\BCG_label\export" + str(sampID) + "_all.csv", index=False, encoding="gbk")
|
||||
|
||||
# 打印结果
|
||||
print("sampID_" + str(sampID) + "写入csv成功")
|
Loading…
Reference in New Issue
Block a user