修复导入时错误输入路径时崩溃的bug

This commit is contained in:
Yorusora 2025-02-11 20:47:40 +08:00
parent a3819c1e88
commit b9b85123c7

View File

@ -313,75 +313,82 @@ class MainWindow(QMainWindow, Ui_MainWindow):
self.msgBox.exec() self.msgBox.exec()
def slot_btn_dataInput(self): def slot_btn_dataInput(self):
info("Inputing Data...") if self.lineEdit_data1path.text() != "" and self.lineEdit_data2path.text() != "" and self.lineEdit_label1path.text() != "" and self.lineEdit_label2path.text() != "":
self.textBrowser_update("提示:开始导入数据") info("Inputing Data...")
MainWindow.setWindowTitle(self, QCoreApplication.translate("MainWindow", self.textBrowser_update("提示:开始导入数据")
"ECG_Label_Check - Data Path: " + self.lineEdit_rootpath.text())) MainWindow.setWindowTitle(self, QCoreApplication.translate("MainWindow",
# 导入数据 "ECG_Label_Check - Data Path: " + self.lineEdit_rootpath.text()))
self.label1 = np.array([]) # 导入数据
self.label2 = np.array([]) self.label1 = np.array([])
file = open(str(self.lineEdit_data1path.text()), 'r') self.label2 = np.array([])
self.data1 = file.readlines() file = open(str(self.lineEdit_data1path.text()), 'r')
self.data1 = list(map(float, self.data1)) self.data1 = file.readlines()
self.data2 = self.data1 self.data1 = list(map(float, self.data1))
self.data1 = self.data_preprocess(self.data1, int(self.lineEdit_data1_fillterNum.text()), self.data2 = self.data1
float(self.lineEdit_data1_fillterFrequency_min.text()), self.data1 = self.data_preprocess(self.data1, int(self.lineEdit_data1_fillterNum.text()),
float(self.lineEdit_data1_fillterFrequency_max.text()), float(self.lineEdit_data1_fillterFrequency_min.text()),
float(self.lineEdit_frequency.text())) float(self.lineEdit_data1_fillterFrequency_max.text()),
self.data2 = self.data_preprocess(self.data2, int(self.lineEdit_data2_fillterNum.text()), float(self.lineEdit_frequency.text()))
float(self.lineEdit_data2_fillterFrequency_min.text()), self.data2 = self.data_preprocess(self.data2, int(self.lineEdit_data2_fillterNum.text()),
float(self.lineEdit_data2_fillterFrequency_max.text()), float(self.lineEdit_data2_fillterFrequency_min.text()),
float(self.lineEdit_frequency.text())) float(self.lineEdit_data2_fillterFrequency_max.text()),
file = open(str(self.lineEdit_label1path.text()), 'r') float(self.lineEdit_frequency.text()))
self.label1 = np.array(file.readlines()) file = open(str(self.lineEdit_label1path.text()), 'r')
self.label2 = self.label1 self.label1 = np.array(file.readlines())
self.data1 = self.data1.astype(np.float64) self.label2 = self.label1
self.data2 = self.data2.astype(np.float64) self.data1 = self.data1.astype(np.float64)
self.label1 = self.label1.astype(np.int64) self.data2 = self.data2.astype(np.float64)
self.label2 = self.label2.astype(np.int64) self.label1 = self.label1.astype(np.int64)
self.points_y_1 = [self.data1[x] for x in self.label1] self.label2 = self.label2.astype(np.int64)
self.points_y_2 = [self.data2[x] for x in self.label2] self.points_y_1 = [self.data1[x] for x in self.label1]
self.points_y_2 = [self.data2[x] for x in self.label2]
# 更新tableWidget # 更新tableWidget
self.tableWidget_label1.setRowCount(len(self.label1)) self.tableWidget_label1.setRowCount(len(self.label1))
for row, value in enumerate(self.label1): for row, value in enumerate(self.label1):
item = QTableWidgetItem(str(value).strip()) item = QTableWidgetItem(str(value).strip())
self.tableWidget_label1.setItem(row, 0, item) self.tableWidget_label1.setItem(row, 0, item)
self.tableWidget_label2.setRowCount(self.label2.__len__()) self.tableWidget_label2.setRowCount(self.label2.__len__())
for row, value in enumerate(self.label2): for row, value in enumerate(self.label2):
item = QTableWidgetItem(str(value).strip()) item = QTableWidgetItem(str(value).strip())
self.tableWidget_label2.setItem(row, 0, item) self.tableWidget_label2.setItem(row, 0, item)
self.groupBox_labelDisplay.setEnabled(True) self.groupBox_labelDisplay.setEnabled(True)
# 更新界面 # 更新界面
self.groupBox_inputSetting.setEnabled(False) self.groupBox_inputSetting.setEnabled(False)
self.groupBox_autoplay.setEnabled(True) self.groupBox_autoplay.setEnabled(True)
self.pushButton_outputLabel.setEnabled(True) self.pushButton_outputLabel.setEnabled(True)
self.figToolbar.action_Label_Single.setEnabled(True) self.figToolbar.action_Label_Single.setEnabled(True)
self.figToolbar.action_Label_Multiple.setEnabled(True) self.figToolbar.action_Label_Multiple.setEnabled(True)
for action in self.figToolbar._actions.values(): for action in self.figToolbar._actions.values():
action.setEnabled(True) action.setEnabled(True)
# 更新信息 # 更新信息
self.label_data1_length.setText(str(len(self.data1))) self.label_data1_length.setText(str(len(self.data1)))
self.label_data2_length.setText(str(len(self.data2))) self.label_data2_length.setText(str(len(self.data2)))
self.label_label1_length.setText(str(len(self.label1))) self.label_label1_length.setText(str(len(self.label1)))
self.label_label2_length.setText(str(len(self.label2))) self.label_label2_length.setText(str(len(self.label2)))
# 更新画框 # 更新画框
self.figure.clear() self.figure.clear()
self.plot_data_and_label() self.plot_data_and_label()
# 连接画框中的槽函数 # 连接画框中的槽函数
# Connect mouse events # Connect mouse events
self.canvas.mpl_connect('motion_notify_event', self.on_motion) self.canvas.mpl_connect('motion_notify_event', self.on_motion)
# 保存路径文件是否存在的检查 # 保存路径文件是否存在的检查
if not Path(self.lineEdit_savepath.text()).exists(): if not Path(self.lineEdit_savepath.text()).exists():
Path(self.lineEdit_savepath.text()).touch() Path(self.lineEdit_savepath.text()).touch()
info("Finished Input Data.") info("Finished Input Data.")
self.textBrowser_update("提示:导入数据完成") self.textBrowser_update("提示:导入数据完成")
else:
info("Failed to Input Data!")
self.textBrowser_update("操作:导入数据失败")
self.msgBox.setText("导入失败,请正确输入路径")
self.msgBox.setIcon(QMessageBox.Critical)
self.msgBox.exec()
def slot_radioBtn_inputMode_auto(self): def slot_radioBtn_inputMode_auto(self):
self.pushButton_rootpath_open.setEnabled(True) self.pushButton_rootpath_open.setEnabled(True)