完成了<BCG质量标注>的UI界面
This commit is contained in:
@ -3,12 +3,15 @@ from pathlib import Path
|
|||||||
from traceback import format_exc
|
from traceback import format_exc
|
||||||
|
|
||||||
import matplotlib.pyplot as plt
|
import matplotlib.pyplot as plt
|
||||||
from PySide6.QtWidgets import QMessageBox, QMainWindow, QApplication
|
from PySide6.QtGui import QColor
|
||||||
|
from PySide6.QtWidgets import QMessageBox, QMainWindow, QApplication, QTableWidget, QTableWidgetItem
|
||||||
from matplotlib import gridspec
|
from matplotlib import gridspec
|
||||||
from matplotlib.backends.backend_qt import NavigationToolbar2QT
|
from matplotlib.backends.backend_qt import NavigationToolbar2QT
|
||||||
from matplotlib.backends.backend_qtagg import FigureCanvasQTAgg
|
from matplotlib.backends.backend_qtagg import FigureCanvasQTAgg
|
||||||
|
from numpy import array, int64, append, zeros, full, where, nan, arange, float64, isnan, place, count_nonzero, all as np_all
|
||||||
from overrides import overrides
|
from overrides import overrides
|
||||||
from pandas import read_csv, DataFrame
|
from pandas import read_csv, DataFrame
|
||||||
|
from scipy.signal import resample, iirfilter, lfilter
|
||||||
from yaml import dump, load, FullLoader
|
from yaml import dump, load, FullLoader
|
||||||
|
|
||||||
from func.utils.PublicFunc import PublicFunc
|
from func.utils.PublicFunc import PublicFunc
|
||||||
@ -68,6 +71,80 @@ class SettingWindow(QMainWindow):
|
|||||||
self.sampID = sampID
|
self.sampID = sampID
|
||||||
|
|
||||||
self.config = None
|
self.config = None
|
||||||
|
self.__read_config__()
|
||||||
|
|
||||||
|
self.ui.spinBox_input_freq_signal_BCG.valueChanged.connect(self.__update_ui__)
|
||||||
|
self.ui.radioButton_30s_mode.clicked.connect(self.__update_mode__)
|
||||||
|
self.ui.radioButton_10s_mode.clicked.connect(self.__update_mode__)
|
||||||
|
self.ui.pushButton_confirm.clicked.connect(self.__write_config__)
|
||||||
|
self.ui.pushButton_cancel.clicked.connect(self.__rollback_config__)
|
||||||
|
self.ui.pushButton_cancel.clicked.connect(self.close)
|
||||||
|
|
||||||
|
def __read_config__(self):
|
||||||
|
if not Path(ConfigParams.BCG_QUALITY_LABEL_CONFIG_FILE_PATH).exists():
|
||||||
|
with open(ConfigParams.BCG_QUALITY_LABEL_CONFIG_FILE_PATH, "w") as f:
|
||||||
|
dump(ConfigParams.BCG_QUALITY_LABEL_CONFIG_NEW_CONTENT, f)
|
||||||
|
|
||||||
|
with open(ConfigParams.BCG_QUALITY_LABEL_CONFIG_FILE_PATH, "r") as f:
|
||||||
|
file_config = load(f.read(), Loader=FullLoader)
|
||||||
|
Config.update(file_config)
|
||||||
|
self.config = file_config
|
||||||
|
|
||||||
|
Config.update({
|
||||||
|
"Path": {
|
||||||
|
"Input_BCG": str((Path(self.root_path) / ConfigParams.PUBLIC_PATH_ORGBCG_ALIGNED /
|
||||||
|
Path(str(self.sampID)))),
|
||||||
|
"Input_Artifact": str((Path(self.root_path) / ConfigParams.PUBLIC_PATH_LABEL /
|
||||||
|
Path(str(self.sampID)))),
|
||||||
|
"Save": str((Path(self.root_path) / ConfigParams.PUBLIC_PATH_LABEL /
|
||||||
|
Path(str(self.sampID)))),
|
||||||
|
},
|
||||||
|
"Mode": "Undefined",
|
||||||
|
"DataPartNum": 0,
|
||||||
|
"CurrentDataIdx": 0,
|
||||||
|
"CurrentPartNum": 1,
|
||||||
|
"LongestContinuousTime": 0,
|
||||||
|
"ArtifactTimePercentage": 0
|
||||||
|
})
|
||||||
|
|
||||||
|
# 数据回显
|
||||||
|
self.ui.spinBox_input_freq_signal_BCG.setValue(Config["InputConfig"]["BCGFreq"])
|
||||||
|
self.ui.plainTextEdit_file_path_input_signal_BCG.setPlainText(Config["Path"]["Input_BCG"])
|
||||||
|
self.ui.plainTextEdit_file_path_input_artifact.setPlainText(Config["Path"]["Input_Artifact"])
|
||||||
|
self.ui.plainTextEdit_file_path_save.setPlainText(Config["Path"]["Save"])
|
||||||
|
|
||||||
|
def __write_config__(self):
|
||||||
|
# 从界面写入配置
|
||||||
|
Config["InputConfig"]["BCGFreq"] = self.ui.spinBox_input_freq_signal_BCG.value()
|
||||||
|
Config["Path"]["Input_BCG"] = self.ui.plainTextEdit_file_path_input_signal_BCG.toPlainText()
|
||||||
|
Config["Path"]["Input_Artifact"] = self.ui.plainTextEdit_file_path_input_artifact.toPlainText()
|
||||||
|
Config["Path"]["Save"] = self.ui.plainTextEdit_file_path_save.toPlainText()
|
||||||
|
|
||||||
|
# 保存配置到文件
|
||||||
|
self.config["InputConfig"]["BCGFreq"] = self.ui.spinBox_input_freq_signal_BCG.value()
|
||||||
|
|
||||||
|
with open(ConfigParams.BCG_QUALITY_LABEL_CONFIG_FILE_PATH, "w") as f:
|
||||||
|
dump(self.config, f)
|
||||||
|
|
||||||
|
self.close()
|
||||||
|
|
||||||
|
def __rollback_config__(self):
|
||||||
|
self.__read_config__()
|
||||||
|
|
||||||
|
def __update_ui__(self):
|
||||||
|
self.ui.plainTextEdit_file_path_input_signal_BCG.setPlainText(
|
||||||
|
str((Path(self.root_path) /
|
||||||
|
ConfigParams.PUBLIC_PATH_ORGBCG_ALIGNED /
|
||||||
|
Path(str(self.sampID)) /
|
||||||
|
Path(ConfigParams.BCG_SYNC +
|
||||||
|
str(self.ui.spinBox_input_freq_signal_BCG.value()) +
|
||||||
|
ConfigParams.ENDSWITH_TXT))))
|
||||||
|
|
||||||
|
def __update_mode__(self):
|
||||||
|
if self.ui.radioButton_30s_mode.isChecked():
|
||||||
|
Config["Mode"] = "30s"
|
||||||
|
elif self.ui.radioButton_10s_mode.isChecked():
|
||||||
|
Config["Mode"] = "10s"
|
||||||
|
|
||||||
|
|
||||||
class MainWindow_bcg_quality_label(QMainWindow):
|
class MainWindow_bcg_quality_label(QMainWindow):
|
||||||
@ -86,4 +163,589 @@ class MainWindow_bcg_quality_label(QMainWindow):
|
|||||||
|
|
||||||
# 初始化进度条
|
# 初始化进度条
|
||||||
self.progressbar = None
|
self.progressbar = None
|
||||||
PublicFunc.add_progressbar(self)
|
PublicFunc.add_progressbar(self)
|
||||||
|
|
||||||
|
#初始化画框
|
||||||
|
self.fig = None
|
||||||
|
self.canvas = None
|
||||||
|
self.figToolbar = None
|
||||||
|
self.gs = None
|
||||||
|
self.ax0 = None
|
||||||
|
|
||||||
|
self.line_data = None
|
||||||
|
|
||||||
|
self.msgBox = QMessageBox()
|
||||||
|
self.msgBox.setWindowTitle(Constants.MAINWINDOW_MSGBOX_TITLE)
|
||||||
|
|
||||||
|
@overrides
|
||||||
|
def show(self, root_path, sampID):
|
||||||
|
super().show()
|
||||||
|
self.root_path = root_path
|
||||||
|
self.sampID = sampID
|
||||||
|
|
||||||
|
self.setting = SettingWindow(root_path, sampID)
|
||||||
|
|
||||||
|
# 初始化画框
|
||||||
|
self.fig = plt.figure(figsize=(12, 9), dpi=100)
|
||||||
|
self.canvas = FigureCanvasQTAgg(self.fig)
|
||||||
|
self.figToolbar = NavigationToolbar2QT(self.canvas)
|
||||||
|
for action in self.figToolbar._actions.values():
|
||||||
|
action.setEnabled(False)
|
||||||
|
for action in self.figToolbar.actions():
|
||||||
|
if action.text() == "Subplots" or action.text() == "Customize":
|
||||||
|
self.figToolbar.removeAction(action)
|
||||||
|
self.ui.verticalLayout_canvas.addWidget(self.canvas)
|
||||||
|
self.ui.verticalLayout_canvas.addWidget(self.figToolbar)
|
||||||
|
self.gs = gridspec.GridSpec(1, 1, height_ratios=[1])
|
||||||
|
self.fig.subplots_adjust(top=0.98, bottom=0.05, right=0.98, left=0.1, hspace=0, wspace=0)
|
||||||
|
self.ax0 = self.fig.add_subplot(self.gs[0])
|
||||||
|
self.ax0.grid(True)
|
||||||
|
self.ax0.xaxis.set_major_formatter(ConfigParams.FORMATTER)
|
||||||
|
|
||||||
|
PublicFunc.__resetAllButton__(self, ButtonState)
|
||||||
|
|
||||||
|
self.ui.tableWidget_a1.setEditTriggers(QTableWidget.NoEditTriggers)
|
||||||
|
self.ui.tableWidget_a2.setEditTriggers(QTableWidget.NoEditTriggers)
|
||||||
|
self.ui.tableWidget_b1.setEditTriggers(QTableWidget.NoEditTriggers)
|
||||||
|
self.ui.tableWidget_b2.setEditTriggers(QTableWidget.NoEditTriggers)
|
||||||
|
self.ui.tableWidget_c.setEditTriggers(QTableWidget.NoEditTriggers)
|
||||||
|
self.ui.tableWidget_f.setEditTriggers(QTableWidget.NoEditTriggers)
|
||||||
|
self.ui.tableWidget_a1.horizontalHeader().setStretchLastSection(True)
|
||||||
|
self.ui.tableWidget_a2.horizontalHeader().setStretchLastSection(True)
|
||||||
|
self.ui.tableWidget_b1.horizontalHeader().setStretchLastSection(True)
|
||||||
|
self.ui.tableWidget_b2.horizontalHeader().setStretchLastSection(True)
|
||||||
|
self.ui.tableWidget_c.horizontalHeader().setStretchLastSection(True)
|
||||||
|
self.ui.tableWidget_f.horizontalHeader().setStretchLastSection(True)
|
||||||
|
self.ui.tableWidget_a1.setHorizontalHeaderLabels(['a1'])
|
||||||
|
self.ui.tableWidget_a2.setHorizontalHeaderLabels(['a2'])
|
||||||
|
self.ui.tableWidget_b1.setHorizontalHeaderLabels(['b1'])
|
||||||
|
self.ui.tableWidget_b2.setHorizontalHeaderLabels(['b2'])
|
||||||
|
self.ui.tableWidget_c.setHorizontalHeaderLabels(['c'])
|
||||||
|
self.ui.tableWidget_f.setHorizontalHeaderLabels(['None'])
|
||||||
|
|
||||||
|
self.ui.pushButton_input_setting.clicked.connect(self.setting.show)
|
||||||
|
self.ui.pushButton_input.clicked.connect(self.__slot_btn_input__)
|
||||||
|
|
||||||
|
@overrides
|
||||||
|
def closeEvent(self, event):
|
||||||
|
reply = QMessageBox.question(self, '确认', '确认退出吗?', QMessageBox.Yes | QMessageBox.No, QMessageBox.No)
|
||||||
|
if reply == QMessageBox.Yes:
|
||||||
|
|
||||||
|
PublicFunc.__disableAllButton__(self, ButtonState)
|
||||||
|
|
||||||
|
PublicFunc.statusbar_show_msg(self, PublicFunc.format_status_msg(Constants.SHUTTING_DOWN))
|
||||||
|
QApplication.processEvents()
|
||||||
|
|
||||||
|
# 清空画框
|
||||||
|
if self.ax0 is not None:
|
||||||
|
self.ax0.clear()
|
||||||
|
|
||||||
|
# 释放资源
|
||||||
|
del self.data
|
||||||
|
self.fig.clf()
|
||||||
|
plt.close(self.fig)
|
||||||
|
self.deleteLater()
|
||||||
|
collect()
|
||||||
|
self.canvas = None
|
||||||
|
event.accept()
|
||||||
|
else:
|
||||||
|
event.ignore()
|
||||||
|
|
||||||
|
def __reset__(self):
|
||||||
|
ButtonState["Current"].update(ButtonState["Default"].copy())
|
||||||
|
|
||||||
|
def __plot__(self):
|
||||||
|
# 清空画框
|
||||||
|
self.reset_axes()
|
||||||
|
|
||||||
|
sender = self.sender()
|
||||||
|
|
||||||
|
if sender == self.ui.pushButton_input:
|
||||||
|
try:
|
||||||
|
artifact_type_seq = array([])
|
||||||
|
artifact_type_seq = artifact_type_seq.astype(int64)
|
||||||
|
if self.ui.checkBox_type1.isChecked():
|
||||||
|
artifact_type_seq = append(artifact_type_seq, 1)
|
||||||
|
if self.ui.checkBox_type2.isChecked():
|
||||||
|
artifact_type_seq = append(artifact_type_seq, 2)
|
||||||
|
if self.ui.checkBox_type3.isChecked():
|
||||||
|
artifact_type_seq = append(artifact_type_seq, 3)
|
||||||
|
if self.ui.checkBox_type4.isChecked():
|
||||||
|
artifact_type_seq = append(artifact_type_seq, 4)
|
||||||
|
if self.ui.checkBox_type5.isChecked():
|
||||||
|
artifact_type_seq = append(artifact_type_seq, 5)
|
||||||
|
|
||||||
|
# 是否显示去除工频噪声
|
||||||
|
if self.ui.checkBox_display_afterfilter.isChecked():
|
||||||
|
display_data = self.data.BCG_without_industrialFrequencyNoise
|
||||||
|
else:
|
||||||
|
display_data = self.data.BCG
|
||||||
|
|
||||||
|
if Config["Mode"] == "30s":
|
||||||
|
length = Config["InputConfig"]["UseFreq"] * 30
|
||||||
|
elif Config["Mode"] == "10s":
|
||||||
|
length = Config["InputConfig"]["UseFreq"] * 10
|
||||||
|
else:
|
||||||
|
raise ValueError("模式不存在")
|
||||||
|
|
||||||
|
# 绘制数据和体动
|
||||||
|
mask = array([arange(length), arange(length), arange(length), arange(length), arange(length), arange(length)])
|
||||||
|
mask = mask.astype(float64)
|
||||||
|
self.ax0.plot(
|
||||||
|
arange(Config["CurrentDataIdx"], Config["CurrentDataIdx"] + length),
|
||||||
|
display_data[Config["CurrentDataIdx"]: Config["CurrentDataIdx"] + length],
|
||||||
|
label=Constants.BCG_QUALITY_LABEL_PLOT_LABEL_SIGNAL, color=Constants.PLOT_COLOR_BLUE)
|
||||||
|
for i in artifact_type_seq:
|
||||||
|
mask[i] = self.data.artifact_mask[Config["CurrentDataIdx"]: Config["CurrentDataIdx"] + length] == i
|
||||||
|
mask[i] = (display_data[Config["CurrentDataIdx"]: Config["CurrentDataIdx"] + length] *
|
||||||
|
mask[i]).astype(float64)
|
||||||
|
place(mask[i], mask[i] == 0, nan)
|
||||||
|
self.ax0.plot(arange(Config["CurrentDataIdx"], Config["CurrentDataIdx"] + length), mask[i],
|
||||||
|
label=f"{Constants.BCG_QUALITY_LABEL_PLOT_LABEL_ARTIFACT}{i}", color=Constants.PLOT_COLOR_RED,
|
||||||
|
linestyle="-")
|
||||||
|
|
||||||
|
isArtifact = mask[~np_all(mask == range(0, length), axis=1)]
|
||||||
|
isArtifact = ~isnan(isArtifact).all(axis=0)
|
||||||
|
|
||||||
|
# 计算最长连续时间并更新信息
|
||||||
|
longest_continuous_max_length = 0
|
||||||
|
longest_continuous_current_length = 0
|
||||||
|
longest_continuous_end = 0
|
||||||
|
for index, value in enumerate(isArtifact):
|
||||||
|
if value == False:
|
||||||
|
longest_continuous_current_length += 1
|
||||||
|
if longest_continuous_current_length > longest_continuous_max_length:
|
||||||
|
longest_continuous_end = index
|
||||||
|
longest_continuous_max_length = max(longest_continuous_max_length,
|
||||||
|
longest_continuous_current_length)
|
||||||
|
else:
|
||||||
|
longest_continuous_current_length = 0
|
||||||
|
longest_continuous_start = longest_continuous_end - longest_continuous_max_length + 1
|
||||||
|
if self.ui.checkBox_highlight_longest_continuous.isChecked():
|
||||||
|
self.ax0.plot(
|
||||||
|
arange(Config["CurrentDataIdx"] + longest_continuous_start,
|
||||||
|
Config["CurrentDataIdx"] + longest_continuous_end),
|
||||||
|
display_data[
|
||||||
|
Config["CurrentDataIdx"] + longest_continuous_start: Config["CurrentDataIdx"] + longest_continuous_end],
|
||||||
|
label=Constants.BCG_QUALITY_LABEL_PLOT_LABEL_LONGEST_CONTINUOUS,
|
||||||
|
color=Constants.PLOT_COLOR_PURPLE, linestyle="-", zorder=3)
|
||||||
|
self.ui.lineEdit_longest_continuous_time.setText(
|
||||||
|
str(round(longest_continuous_max_length / int(Config["InputConfig"]["UseFreq"]), 2)) + "秒")
|
||||||
|
|
||||||
|
# 计算体动时间占比并更新信息
|
||||||
|
self.ui.lineEdit_artifact_time_percentage.setText(
|
||||||
|
str(round(100 * count_nonzero(isArtifact) / len(isArtifact), 2)) + "%")
|
||||||
|
|
||||||
|
self.ax0.legend(loc=Constants.PLOT_UPPER_RIGHT)
|
||||||
|
self.canvas.draw()
|
||||||
|
except Exception as e:
|
||||||
|
return Result().failure(info=Constants.DRAW_FAILURE + "\n" + format_exc())
|
||||||
|
return Result().success(info=Constants.DRAW_FINISHED)
|
||||||
|
else:
|
||||||
|
self.canvas.draw()
|
||||||
|
self.ax0.autoscale(False)
|
||||||
|
return Result().failure(info=Constants.DRAW_FAILURE)
|
||||||
|
|
||||||
|
def __slot_btn_input__(self):
|
||||||
|
PublicFunc.__disableAllButton__(self, ButtonState)
|
||||||
|
|
||||||
|
self.reset_axes()
|
||||||
|
self.canvas.draw()
|
||||||
|
|
||||||
|
self.data = Data()
|
||||||
|
|
||||||
|
# 导入数据
|
||||||
|
PublicFunc.progressbar_update(self, 1, 5, Constants.INPUTTING_DATA, 0)
|
||||||
|
result = self.data.open_file()
|
||||||
|
if not result.status:
|
||||||
|
PublicFunc.text_output(self.ui, "(1/5)" + result.info, Constants.TIPS_TYPE_ERROR)
|
||||||
|
PublicFunc.msgbox_output(self, result.info, Constants.MSGBOX_TYPE_ERROR)
|
||||||
|
PublicFunc.finish_operation(self, ButtonState)
|
||||||
|
return
|
||||||
|
else:
|
||||||
|
PublicFunc.text_output(self.ui, "(1/5)" + result.info, Constants.TIPS_TYPE_INFO)
|
||||||
|
|
||||||
|
# 获取存档
|
||||||
|
PublicFunc.progressbar_update(self, 2, 5, Constants.LOADING_ARCHIVE, 30)
|
||||||
|
result = self.data.get_archive()
|
||||||
|
if not result.status:
|
||||||
|
PublicFunc.text_output(self.ui, "(2/5)" + result.info, Constants.TIPS_TYPE_ERROR)
|
||||||
|
PublicFunc.msgbox_output(self, result.info, Constants.MSGBOX_TYPE_ERROR)
|
||||||
|
PublicFunc.finish_operation(self, ButtonState)
|
||||||
|
return
|
||||||
|
else:
|
||||||
|
PublicFunc.text_output(self.ui, "(2/5)" + result.info, Constants.TIPS_TYPE_INFO)
|
||||||
|
|
||||||
|
# 重采样
|
||||||
|
PublicFunc.progressbar_update(self, 3, 5, Constants.RESAMPLING_DATA, 40)
|
||||||
|
result = self.data.resample()
|
||||||
|
if not result.status:
|
||||||
|
PublicFunc.text_output(self.ui, "(3/5)" + result.info, Constants.TIPS_TYPE_ERROR)
|
||||||
|
PublicFunc.msgbox_output(self, result.info, Constants.MSGBOX_TYPE_ERROR)
|
||||||
|
PublicFunc.finish_operation(self, ButtonState)
|
||||||
|
return
|
||||||
|
else:
|
||||||
|
PublicFunc.text_output(self.ui, "(3/5)" + result.info, Constants.TIPS_TYPE_INFO)
|
||||||
|
|
||||||
|
# 数据预处理
|
||||||
|
PublicFunc.progressbar_update(self, 4, 5, Constants.PREPROCESSING_DATA, 70)
|
||||||
|
result = self.data.preprocess()
|
||||||
|
if not result.status:
|
||||||
|
PublicFunc.text_output(self.ui, "(4/5)" + result.info, Constants.TIPS_TYPE_ERROR)
|
||||||
|
PublicFunc.msgbox_output(self, result.info, Constants.MSGBOX_TYPE_ERROR)
|
||||||
|
PublicFunc.finish_operation(self, ButtonState)
|
||||||
|
return
|
||||||
|
else:
|
||||||
|
PublicFunc.text_output(self.ui, "(4/5)" + result.info, Constants.TIPS_TYPE_INFO)
|
||||||
|
|
||||||
|
# 绘图
|
||||||
|
PublicFunc.progressbar_update(self, 5, 5, Constants.DRAWING_DATA, 90)
|
||||||
|
result = self.__plot__()
|
||||||
|
if not result.status:
|
||||||
|
PublicFunc.text_output(self.ui, "(5/5)" + result.info, Constants.TIPS_TYPE_ERROR)
|
||||||
|
PublicFunc.msgbox_output(self, result.info, Constants.MSGBOX_TYPE_ERROR)
|
||||||
|
PublicFunc.finish_operation(self, ButtonState)
|
||||||
|
return
|
||||||
|
else:
|
||||||
|
PublicFunc.text_output(self.ui, "(5/5)" + result.info, Constants.TIPS_TYPE_INFO)
|
||||||
|
|
||||||
|
self.__reset__()
|
||||||
|
self.change_tablewidget_mode()
|
||||||
|
self.update_tableWidget()
|
||||||
|
self.update_status()
|
||||||
|
ButtonState["Current"]["pushButton_input_setting"] = True
|
||||||
|
ButtonState["Current"]["pushButton_input"] = True
|
||||||
|
ButtonState["Current"]["pushButton_invalid_signal_label"] = True
|
||||||
|
ButtonState["Current"]["pushButton_Ctype_signal_label"] = True
|
||||||
|
ButtonState["Current"]["pushButton_prev"] = True
|
||||||
|
ButtonState["Current"]["pushButton_next"] = True
|
||||||
|
ButtonState["Current"]["pushButton_save"] = True
|
||||||
|
ButtonState["Current"]["pushButton_a1"] = True
|
||||||
|
ButtonState["Current"]["pushButton_a2"] = True
|
||||||
|
ButtonState["Current"]["pushButton_b1"] = True
|
||||||
|
ButtonState["Current"]["pushButton_b2"] = True
|
||||||
|
ButtonState["Current"]["pushButton_c"] = True
|
||||||
|
ButtonState["Current"]["pushButton_f"] = True
|
||||||
|
for action in self.figToolbar._actions.values():
|
||||||
|
action.setEnabled(True)
|
||||||
|
|
||||||
|
PublicFunc.finish_operation(self, ButtonState)
|
||||||
|
|
||||||
|
def update_status(self):
|
||||||
|
if Config["Mode"] == "30s":
|
||||||
|
hour = int(((Config["CurrentDataIdx"] + (Config["InputConfig"]["UseFreq"] * 30)) / int(Config["InputConfig"]["UseFreq"])) // 3600)
|
||||||
|
min = int((((Config["CurrentDataIdx"] + (Config["InputConfig"]["UseFreq"] * 30)) / int(Config["InputConfig"]["UseFreq"])) % 3600) // 60)
|
||||||
|
sec = int((((Config["CurrentDataIdx"] + (Config["InputConfig"]["UseFreq"] * 30)) / int(Config["InputConfig"]["UseFreq"])) % 3600) % 60)
|
||||||
|
elif Config["Mode"] == "10s":
|
||||||
|
hour = int(((Config["CurrentDataIdx"] + (Config["InputConfig"]["UseFreq"] * 10)) / int(Config["InputConfig"]["UseFreq"])) // 3600)
|
||||||
|
min = int((((Config["CurrentDataIdx"] + (Config["InputConfig"]["UseFreq"] * 10)) / int(Config["InputConfig"]["UseFreq"])) % 3600) // 60)
|
||||||
|
sec = int((((Config["CurrentDataIdx"] + (Config["InputConfig"]["UseFreq"] * 10)) / int(Config["InputConfig"]["UseFreq"])) % 3600) % 60)
|
||||||
|
else:
|
||||||
|
raise ValueError("模式不存在")
|
||||||
|
self.ui.lineEdit_current_part_time.setText(str(hour) + "时" + str(min) + "分" + str(sec) + "秒")
|
||||||
|
self.ui.lineEdit_data_part_num.setText(str(Config["CurrentPartNum"]) + "/" + str(Config["DataPartNum"]))
|
||||||
|
|
||||||
|
def update_tableWidget(self):
|
||||||
|
if Config["Mode"] == "30s":
|
||||||
|
label_list = {
|
||||||
|
"label_a1": where(self.data.label == Constants.BCG_QUALITY_LABEL_30S_A1)[0] + 1,
|
||||||
|
"label_a2": where(self.data.label == Constants.BCG_QUALITY_LABEL_30S_A2)[0] + 1,
|
||||||
|
"label_b1": where(self.data.label == Constants.BCG_QUALITY_LABEL_30S_B1)[0] + 1,
|
||||||
|
"label_b2": where(self.data.label == Constants.BCG_QUALITY_LABEL_30S_B2)[0] + 1,
|
||||||
|
"label_c": where(self.data.label == Constants.BCG_QUALITY_LABEL_30S_C)[0] + 1,
|
||||||
|
"label_tobeLabeled": where(self.data.label == Constants.BCG_QUALITY_LABEL_TOBELABELED)[0] + 1
|
||||||
|
}
|
||||||
|
self.ui.tableWidget_a1.setRowCount(label_list["label_a1"].__len__())
|
||||||
|
self.ui.tableWidget_a2.setRowCount(label_list["label_a2"].__len__())
|
||||||
|
self.ui.tableWidget_b1.setRowCount(label_list["label_b1"].__len__())
|
||||||
|
self.ui.tableWidget_b2.setRowCount(label_list["label_b2"].__len__())
|
||||||
|
self.ui.tableWidget_c.setRowCount(label_list["label_c"].__len__())
|
||||||
|
self.ui.tableWidget_f.setRowCount(label_list["label_tobeLabeled"].__len__())
|
||||||
|
for label_name, label in label_list.items():
|
||||||
|
if label_name == "label_a1":
|
||||||
|
tableWidget = self.ui.tableWidget_a1
|
||||||
|
elif label_name == "label_a2":
|
||||||
|
tableWidget = self.ui.tableWidget_a2
|
||||||
|
elif label_name == "label_b1":
|
||||||
|
tableWidget = self.ui.tableWidget_b1
|
||||||
|
elif label_name == "label_b2":
|
||||||
|
tableWidget = self.ui.tableWidget_b2
|
||||||
|
elif label_name == "label_c":
|
||||||
|
tableWidget = self.ui.tableWidget_c
|
||||||
|
elif label_name == "label_tobeLabeled":
|
||||||
|
tableWidget = self.ui.tableWidget_f
|
||||||
|
else:
|
||||||
|
raise ValueError("标签名不存在")
|
||||||
|
for row, value in enumerate(label):
|
||||||
|
item = QTableWidgetItem(str(value).strip())
|
||||||
|
tableWidget.setItem(row, 0, item)
|
||||||
|
if (self.data.df_label[Constants.BCG_QUALITY_LABEL_COLUMN_REMARK][
|
||||||
|
value - 1] != Constants.STRING_IS_EMPTY and
|
||||||
|
self.data.df_label[Constants.BCG_QUALITY_LABEL_COLUMN_REMARK][value - 1] is not nan):
|
||||||
|
item = tableWidget.item(row, 0)
|
||||||
|
item.setBackground(QColor(255, 200, 200))
|
||||||
|
else:
|
||||||
|
item = tableWidget.item(row, 0)
|
||||||
|
item.setBackground(QColor(255, 255, 255))
|
||||||
|
self.ui.tableWidget_a1.verticalScrollBar().setValue(self.ui.tableWidget_a1.verticalScrollBar().maximum())
|
||||||
|
self.ui.tableWidget_a2.verticalScrollBar().setValue(self.ui.tableWidget_a2.verticalScrollBar().maximum())
|
||||||
|
self.ui.tableWidget_b1.verticalScrollBar().setValue(self.ui.tableWidget_b2.verticalScrollBar().maximum())
|
||||||
|
self.ui.tableWidget_c.verticalScrollBar().setValue(self.ui.tableWidget_c.verticalScrollBar().maximum())
|
||||||
|
self.ui.tableWidget_f.verticalScrollBar().setValue(self.ui.tableWidget_f.verticalScrollBar().maximum())
|
||||||
|
elif Config["Mode"] == "10s":
|
||||||
|
label_list = {
|
||||||
|
"label_a": where(self.data.label == Constants.BCG_QUALITY_LABEL_10S_A)[0] + 1,
|
||||||
|
"label_b": where(self.data.label == Constants.BCG_QUALITY_LABEL_10S_B)[0] + 1,
|
||||||
|
"label_c": where(self.data.label == Constants.BCG_QUALITY_LABEL_10S_C)[0] + 1,
|
||||||
|
"label_tobeLabeled": where(self.data.label == Constants.BCG_QUALITY_LABEL_TOBELABELED)[0] + 1
|
||||||
|
}
|
||||||
|
self.ui.tableWidget_a1.setRowCount(label_list["label_a"].__len__())
|
||||||
|
self.ui.tableWidget_b1.setRowCount(label_list["label_b"].__len__())
|
||||||
|
self.ui.tableWidget_c.setRowCount(label_list["label_c"].__len__())
|
||||||
|
self.ui.tableWidget_f.setRowCount(label_list["label_tobeLabeled"].__len__())
|
||||||
|
for label_name, label in label_list.items():
|
||||||
|
if label_name == "label_a":
|
||||||
|
tableWidget = self.ui.tableWidget_a1
|
||||||
|
elif label_name == "label_b":
|
||||||
|
tableWidget = self.ui.tableWidget_b1
|
||||||
|
elif label_name == "label_c":
|
||||||
|
tableWidget = self.ui.tableWidget_c
|
||||||
|
elif label_name == "label_tobeLabeled":
|
||||||
|
tableWidget = self.ui.tableWidget_f
|
||||||
|
else:
|
||||||
|
raise ValueError("标签名不存在")
|
||||||
|
for row, value in enumerate(label):
|
||||||
|
item = QTableWidgetItem(str(value).strip())
|
||||||
|
tableWidget.setItem(row, 0, item)
|
||||||
|
if (self.data.df_label[Constants.BCG_QUALITY_LABEL_COLUMN_REMARK][
|
||||||
|
value - 1] != Constants.STRING_IS_EMPTY and
|
||||||
|
self.data.df_label[Constants.BCG_QUALITY_LABEL_COLUMN_REMARK][value - 1] is not nan):
|
||||||
|
item = tableWidget.item(row, 0)
|
||||||
|
item.setBackground(QColor(255, 200, 200))
|
||||||
|
else:
|
||||||
|
item = tableWidget.item(row, 0)
|
||||||
|
item.setBackground(QColor(255, 255, 255))
|
||||||
|
self.ui.tableWidget_a1.verticalScrollBar().setValue(self.ui.tableWidget_a1.verticalScrollBar().maximum())
|
||||||
|
self.ui.tableWidget_b1.verticalScrollBar().setValue(self.ui.tableWidget_b1.verticalScrollBar().maximum())
|
||||||
|
self.ui.tableWidget_c.verticalScrollBar().setValue(self.ui.tableWidget_c.verticalScrollBar().maximum())
|
||||||
|
else:
|
||||||
|
raise ValueError("模式不存在")
|
||||||
|
|
||||||
|
def reset_axes(self):
|
||||||
|
if self.ax0 is not None:
|
||||||
|
self.ax0.clear()
|
||||||
|
self.ax0.grid(True)
|
||||||
|
self.ax0.xaxis.set_major_formatter(ConfigParams.FORMATTER)
|
||||||
|
|
||||||
|
def change_tablewidget_mode(self):
|
||||||
|
if Config["Mode"] == "10s":
|
||||||
|
self.ui.pushButton_a1.show()
|
||||||
|
self.ui.pushButton_a2.hide()
|
||||||
|
self.ui.pushButton_b1.show()
|
||||||
|
self.ui.pushButton_b2.hide()
|
||||||
|
self.ui.pushButton_c.show()
|
||||||
|
self.ui.pushButton_f.show()
|
||||||
|
self.ui.pushButton_a1.setText("a")
|
||||||
|
self.ui.pushButton_a2.setText("a2")
|
||||||
|
self.ui.pushButton_b1.setText("b")
|
||||||
|
self.ui.pushButton_b2.setText("b2")
|
||||||
|
self.ui.pushButton_c.setText("c")
|
||||||
|
self.ui.pushButton_f.setText("删除")
|
||||||
|
self.ui.tableWidget_a1.show()
|
||||||
|
self.ui.tableWidget_a2.hide()
|
||||||
|
self.ui.tableWidget_b1.show()
|
||||||
|
self.ui.tableWidget_b2.hide()
|
||||||
|
self.ui.tableWidget_c.show()
|
||||||
|
self.ui.tableWidget_f.show()
|
||||||
|
self.ui.tableWidget_a1.setHorizontalHeaderLabels(['a'])
|
||||||
|
self.ui.tableWidget_a2.setHorizontalHeaderLabels(['a2'])
|
||||||
|
self.ui.tableWidget_b1.setHorizontalHeaderLabels(['b'])
|
||||||
|
self.ui.tableWidget_b2.setHorizontalHeaderLabels(['b2'])
|
||||||
|
self.ui.tableWidget_c.setHorizontalHeaderLabels(['c'])
|
||||||
|
self.ui.tableWidget_f.setHorizontalHeaderLabels(['None'])
|
||||||
|
elif Config["Mode"] == "30s":
|
||||||
|
self.ui.pushButton_a1.show()
|
||||||
|
self.ui.pushButton_a2.show()
|
||||||
|
self.ui.pushButton_b1.show()
|
||||||
|
self.ui.pushButton_b2.show()
|
||||||
|
self.ui.pushButton_c.show()
|
||||||
|
self.ui.pushButton_f.show()
|
||||||
|
self.ui.pushButton_a1.setText("a1")
|
||||||
|
self.ui.pushButton_a2.setText("a2")
|
||||||
|
self.ui.pushButton_b1.setText("b1")
|
||||||
|
self.ui.pushButton_b2.setText("b2")
|
||||||
|
self.ui.pushButton_c.setText("c")
|
||||||
|
self.ui.pushButton_f.setText("删除")
|
||||||
|
self.ui.tableWidget_a1.show()
|
||||||
|
self.ui.tableWidget_a2.show()
|
||||||
|
self.ui.tableWidget_b1.show()
|
||||||
|
self.ui.tableWidget_b2.show()
|
||||||
|
self.ui.tableWidget_c.show()
|
||||||
|
self.ui.tableWidget_f.show()
|
||||||
|
self.ui.tableWidget_a1.setHorizontalHeaderLabels(['a1'])
|
||||||
|
self.ui.tableWidget_a2.setHorizontalHeaderLabels(['a2'])
|
||||||
|
self.ui.tableWidget_b1.setHorizontalHeaderLabels(['b1'])
|
||||||
|
self.ui.tableWidget_b2.setHorizontalHeaderLabels(['b2'])
|
||||||
|
self.ui.tableWidget_c.setHorizontalHeaderLabels(['c'])
|
||||||
|
self.ui.tableWidget_f.setHorizontalHeaderLabels(['None'])
|
||||||
|
elif Config["Mode"] == "Undefined":
|
||||||
|
return False
|
||||||
|
else:
|
||||||
|
raise ValueError("模式不存在")
|
||||||
|
return True
|
||||||
|
|
||||||
|
|
||||||
|
class Data():
|
||||||
|
|
||||||
|
def __init__(self):
|
||||||
|
self.BCG = None
|
||||||
|
self.BCG_without_industrialFrequencyNoise = None
|
||||||
|
self.Artifact_a = None
|
||||||
|
self.df_label = None
|
||||||
|
self.label = None
|
||||||
|
|
||||||
|
self.artifact_number = array([]).astype(int64)
|
||||||
|
self.artifact_type = array([]).astype(int64)
|
||||||
|
self.artifact_mask = array([]).astype(int64)
|
||||||
|
|
||||||
|
def open_file(self):
|
||||||
|
if Path(Config["Path"]["Input_BCG"]).is_file():
|
||||||
|
Config["Path"]["Input_BCG"] = str(Path(Config["Path"]["Input_BCG"]).parent)
|
||||||
|
if Path(Config["Path"]["Input_Artifact"]).is_file():
|
||||||
|
Config["Path"]["Input_Artifact"] = str(Path(Config["Path"]["Input_Artifact"]).parent)
|
||||||
|
if Path(Config["Path"]["Save"]).is_file():
|
||||||
|
Config["Path"]["Save"] = str(Path(Config["Path"]["Save"]).parent)
|
||||||
|
|
||||||
|
result = PublicFunc.examine_file(Config["Path"]["Input_BCG"], ConfigParams.BCG_SYNC, ConfigParams.ENDSWITH_TXT)
|
||||||
|
if result.status:
|
||||||
|
Config["Path"]["Input_BCG"] = result.data["path"]
|
||||||
|
Config["InputConfig"]["ThoFreq"] = result.data["freq"]
|
||||||
|
else:
|
||||||
|
return result
|
||||||
|
|
||||||
|
result = PublicFunc.examine_file(Config["Path"]["Input_Artifact"], ConfigParams.ARTIFACT_A, ConfigParams.ENDSWITH_TXT)
|
||||||
|
if result.status:
|
||||||
|
Config["Path"]["Input_Artifact"] = result.data["path"]
|
||||||
|
else:
|
||||||
|
return result
|
||||||
|
|
||||||
|
if Config["Mode"] == "30s":
|
||||||
|
Config["Path"]["Save"] = str(
|
||||||
|
Path(Config["Path"]["Save"]) / Path(ConfigParams.SQ_LABEL_30S + ConfigParams.ENDSWITH_CSV))
|
||||||
|
elif Config["Mode"] == "10s":
|
||||||
|
Config["Path"]["Save"] = str(
|
||||||
|
Path(Config["Path"]["Save"]) / Path(ConfigParams.SQ_LABEL_10S + ConfigParams.ENDSWITH_CSV))
|
||||||
|
elif Config["Mode"] == "Undefined":
|
||||||
|
return Result().failure(info=Constants.INPUT_FAILURE + Constants.FAILURE_REASON["Mode_Undefined"])
|
||||||
|
else:
|
||||||
|
raise ValueError("模式不存在")
|
||||||
|
|
||||||
|
try:
|
||||||
|
self.BCG = read_csv(Config["Path"]["Input_BCG"],
|
||||||
|
encoding=ConfigParams.UTF8_ENCODING,
|
||||||
|
header=None).to_numpy().reshape(-1)
|
||||||
|
self.Artifact_a = read_csv(Config["Path"]["Input_Artifact"],
|
||||||
|
encoding=ConfigParams.UTF8_ENCODING,
|
||||||
|
header=None).to_numpy().reshape(-1)
|
||||||
|
except Exception as e:
|
||||||
|
return Result().failure(info=Constants.INPUT_FAILURE + Constants.FAILURE_REASON["Open_Data_Exception"] + "\n" + format_exc())
|
||||||
|
|
||||||
|
try:
|
||||||
|
if Config["Mode"] == "30s":
|
||||||
|
Config["DataPartNum"] = len(self.BCG) // (Config["InputConfig"]["UseFreq"] * 30)
|
||||||
|
elif Config["Mode"] == "10s":
|
||||||
|
Config["DataPartNum"] = len(self.BCG) // (Config["InputConfig"]["UseFreq"] * 10)
|
||||||
|
else:
|
||||||
|
raise ValueError("模式不存在")
|
||||||
|
if Config["DataPartNum"] == 0:
|
||||||
|
return Result().failure(info=Constants.INPUT_FAILURE + Constants.FAILURE_REASON["Data_Length_Not_Correct"])
|
||||||
|
except Exception as e:
|
||||||
|
return Result().failure(info=Constants.INPUT_FAILURE + Constants.FAILURE_REASON["Open_Data_Exception"] + "\n" + format_exc())
|
||||||
|
|
||||||
|
try:
|
||||||
|
# 检查体动标签正确性,长度
|
||||||
|
PublicFunc.examine_artifact(self.Artifact_a)
|
||||||
|
# 定义绘制体动所需要的数组
|
||||||
|
artifact_start = array([])
|
||||||
|
artifact_start = artifact_start.astype(int64)
|
||||||
|
artifact_end = array([])
|
||||||
|
artifact_end = artifact_end.astype(int64)
|
||||||
|
for i in range(0, len(self.Artifact_a), 4):
|
||||||
|
self.artifact_number = append(self.artifact_number, self.Artifact_a[i])
|
||||||
|
for i in range(1, len(self.Artifact_a), 4):
|
||||||
|
self.artifact_type = append(self.artifact_type, self.Artifact_a[i])
|
||||||
|
for i in range(2, len(self.Artifact_a), 4):
|
||||||
|
artifact_start = append(artifact_start, self.Artifact_a[i])
|
||||||
|
for i in range(3, len(self.Artifact_a), 4):
|
||||||
|
artifact_end = append(artifact_end, self.Artifact_a[i])
|
||||||
|
self.artifact_mask = zeros(len(self.BCG))
|
||||||
|
for i in range(0, len(self.artifact_number)):
|
||||||
|
self.artifact_mask[artifact_start[i]: artifact_end[i] + 1] = 1
|
||||||
|
except Exception as e:
|
||||||
|
return Result().failure(info=Constants.INPUT_FAILURE +
|
||||||
|
Constants.FAILURE_REASON["Get_Artifact_Format_Exception"] + "\n" + format_exc())
|
||||||
|
|
||||||
|
return Result().success(info=Constants.INPUT_FINISHED)
|
||||||
|
|
||||||
|
def get_archive(self):
|
||||||
|
if Config["Mode"] == "30s":
|
||||||
|
filename = ConfigParams.SQ_LABEL_30S
|
||||||
|
elif Config["Mode"] == "10s":
|
||||||
|
filename = ConfigParams.SQ_LABEL_10S
|
||||||
|
else:
|
||||||
|
raise ValueError("模式不存在")
|
||||||
|
|
||||||
|
if not Path(Config["Path"]["Save"]).exists():
|
||||||
|
self.label = full(Config["DataPartNum"], Constants.BCG_QUALITY_LABEL_TOBELABELED)
|
||||||
|
self.df_label = DataFrame(columns=[Constants.BCG_QUALITY_LABEL_COLUMN_LABEL, Constants.BCG_QUALITY_LABEL_COLUMN_REMARK])
|
||||||
|
self.df_label[Constants.BCG_QUALITY_LABEL_COLUMN_LABEL] = self.label
|
||||||
|
self.df_label[Constants.BCG_QUALITY_LABEL_COLUMN_REMARK] = Constants.STRING_IS_EMPTY
|
||||||
|
self.df_label[Constants.BCG_QUALITY_LABEL_COLUMN_LABEL] = self.df_label[
|
||||||
|
Constants.BCG_QUALITY_LABEL_COLUMN_LABEL].astype(str)
|
||||||
|
self.df_label[Constants.BCG_QUALITY_LABEL_COLUMN_REMARK] = self.df_label[
|
||||||
|
Constants.BCG_QUALITY_LABEL_COLUMN_REMARK].astype(str)
|
||||||
|
return Result().success(info=filename + ":" + Constants.ARCHIVE_NOT_EXIST)
|
||||||
|
else:
|
||||||
|
self.df_label = read_csv(Config["Path"]["Save"],
|
||||||
|
encoding=ConfigParams.GBK_ENCODING)
|
||||||
|
self.label = self.df_label[Constants.BCG_QUALITY_LABEL_COLUMN_LABEL].astype(str)
|
||||||
|
return Result().success(info=filename + ":" + Constants.ARCHIVE_EXIST)
|
||||||
|
|
||||||
|
def resample(self):
|
||||||
|
if self.BCG is None:
|
||||||
|
Result().failure(info=Constants.RESAMPLE_FAILURE + Constants.FAILURE_REASON["Data_Not_Exist"])
|
||||||
|
|
||||||
|
try:
|
||||||
|
if Config["InputConfig"]["BCGFreq"] != Config["InputConfig"]["UseFreq"]:
|
||||||
|
self.BCG = resample(self.BCG,
|
||||||
|
int(len(self.BCG) *
|
||||||
|
(Config["InputConfig"]["UseFreq"] / Config["InputConfig"]["BCGFreq"])))
|
||||||
|
else:
|
||||||
|
return Result().success(info=Constants.RESAMPLE_NO_NEED)
|
||||||
|
except Exception as e:
|
||||||
|
Result().failure(info=Constants.RESAMPLE_FAILURE +
|
||||||
|
Constants.FAILURE_REASON["Resample_Exception"] + "\n" + format_exc())
|
||||||
|
|
||||||
|
return Result().success(info=Constants.RESAMPLE_FINISHED)
|
||||||
|
|
||||||
|
def preprocess(self):
|
||||||
|
if self.BCG is None:
|
||||||
|
return Result().failure(info=Constants.PREPROCESS_FAILURE + Constants.FAILURE_REASON["Data_Not_Exist"])
|
||||||
|
|
||||||
|
try:
|
||||||
|
self.BCG_without_industrialFrequencyNoise = Data.wipe_industrialFrequencyNoise(self.BCG, int(Config["InputConfig"]["UseFreq"]))
|
||||||
|
except Exception as e:
|
||||||
|
return Result().failure(info=Constants.PREPROCESS_FAILURE +
|
||||||
|
Constants.FAILURE_REASON["Preprocess_Exception"] + "\n" + format_exc())
|
||||||
|
|
||||||
|
return Result().success(info=Constants.PREPROCESS_FINISHED)
|
||||||
|
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def wipe_industrialFrequencyNoise(data, fs):
|
||||||
|
# 设计带阻滤波器(Notch Filter)来滤除49-51Hz的噪声
|
||||||
|
nyq = 0.5 * fs # 奈奎斯特频率
|
||||||
|
low = 49 / nyq
|
||||||
|
high = 51 / nyq
|
||||||
|
b, a = iirfilter(4, [low, high], btype='bandstop', ftype='butter') # 4阶巴特沃斯带阻滤波器
|
||||||
|
return lfilter(b, a, data)
|
||||||
@ -286,7 +286,6 @@ class MainWindow_resp_quality_label(QMainWindow):
|
|||||||
self.ui.pushButton_invalid.clicked.connect(self.__slot_btn_label__)
|
self.ui.pushButton_invalid.clicked.connect(self.__slot_btn_label__)
|
||||||
self.ui.pushButton_reset.clicked.connect(self.__slot_btn_label__)
|
self.ui.pushButton_reset.clicked.connect(self.__slot_btn_label__)
|
||||||
self.ui.pushButton_save.clicked.connect(self.__slot_btn_save__)
|
self.ui.pushButton_save.clicked.connect(self.__slot_btn_save__)
|
||||||
|
|
||||||
self.ui.lineEdit_filter_labeled.textChanged.connect(self.__slot_lineEdit_filter__)
|
self.ui.lineEdit_filter_labeled.textChanged.connect(self.__slot_lineEdit_filter__)
|
||||||
self.ui.lineEdit_filter_tobelabeled.textChanged.connect(self.__slot_lineEdit_filter__)
|
self.ui.lineEdit_filter_tobelabeled.textChanged.connect(self.__slot_lineEdit_filter__)
|
||||||
self.ui.doubleSpinBox_quality_threshold1.valueChanged.connect(self.update_config)
|
self.ui.doubleSpinBox_quality_threshold1.valueChanged.connect(self.update_config)
|
||||||
|
|||||||
@ -70,6 +70,8 @@ class ConfigParams:
|
|||||||
SA_LABEL_ADD: str = "SA Label_add"
|
SA_LABEL_ADD: str = "SA Label_add"
|
||||||
RESP_QUALITY_LABEL: str = "Resp_quality_label"
|
RESP_QUALITY_LABEL: str = "Resp_quality_label"
|
||||||
THO_PEAK: str = "Tho_peak_"
|
THO_PEAK: str = "Tho_peak_"
|
||||||
|
SQ_LABEL_10S: str = "SQ_label_10s"
|
||||||
|
SQ_LABEL_30S: str = "SQ_label_30s"
|
||||||
|
|
||||||
# 数据粗同步
|
# 数据粗同步
|
||||||
APPROXIMATELY_ALIGN_CONFIG_FILE_PATH: str = "./config/Config_approximately_align.yaml"
|
APPROXIMATELY_ALIGN_CONFIG_FILE_PATH: str = "./config/Config_approximately_align.yaml"
|
||||||
@ -252,7 +254,14 @@ class ConfigParams:
|
|||||||
ARTIFACT_LABEL_LABEL_TRANSPARENCY: float = 0.3
|
ARTIFACT_LABEL_LABEL_TRANSPARENCY: float = 0.3
|
||||||
ARTIFACT_LABEL_ACTION_LABEL_ARTIFACT_SHORTCUT_KEY: str = "Z"
|
ARTIFACT_LABEL_ACTION_LABEL_ARTIFACT_SHORTCUT_KEY: str = "Z"
|
||||||
|
|
||||||
# BCG质量标注
|
# BCG的质量标注
|
||||||
|
BCG_QUALITY_LABEL_CONFIG_FILE_PATH: str = "./config/Config_bcg_quality_label.yaml"
|
||||||
|
BCG_QUALITY_LABEL_CONFIG_NEW_CONTENT: dict = {
|
||||||
|
"InputConfig": {
|
||||||
|
"BCGFreq": 1000,
|
||||||
|
"UseFreq": 1000
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
# 呼吸可用性及间期标注
|
# 呼吸可用性及间期标注
|
||||||
RESP_QUALITY_LABEL_CONFIG_FILE_PATH: str = "./config/Config_resp_quality_label.yaml"
|
RESP_QUALITY_LABEL_CONFIG_FILE_PATH: str = "./config/Config_resp_quality_label.yaml"
|
||||||
@ -311,19 +320,6 @@ class ConfigParams:
|
|||||||
SA_LABEL_RADIOBUTTON_2_CLASS_SHORTCUT_KEY: str = "I"
|
SA_LABEL_RADIOBUTTON_2_CLASS_SHORTCUT_KEY: str = "I"
|
||||||
SA_LABEL_RADIOBUTTON_3_CLASS_SHORTCUT_KEY: str = "O"
|
SA_LABEL_RADIOBUTTON_3_CLASS_SHORTCUT_KEY: str = "O"
|
||||||
|
|
||||||
# 质量打标
|
|
||||||
BCG_QUALITY_LABEL_INPUT_BCG_FILENAME: str = "BCG_sync_"
|
|
||||||
BCG_QUALITY_LABEL_INPUT_ARTIFACT_FILENAME: str = "Artifact_a"
|
|
||||||
BCG_QUALITY_LABEL_SAVE_FILENAME: str = "SQ_label_"
|
|
||||||
|
|
||||||
BCG_QUALITY_LABEL_INPUT_DEFAULT_FS: int = 1000
|
|
||||||
|
|
||||||
BCG_QUALITY_LABEL_SAVE_MODE_10S: str = "10s"
|
|
||||||
BCG_QUALITY_LABEL_SAVE_MODE_30S: str = "30s"
|
|
||||||
|
|
||||||
BCG_QUALITY_LABEL_MODE_10S_LENGTH = 10 * BCG_QUALITY_LABEL_INPUT_DEFAULT_FS
|
|
||||||
BCG_QUALITY_LABEL_MODE_30S_LENGTH = 30 * BCG_QUALITY_LABEL_INPUT_DEFAULT_FS
|
|
||||||
|
|
||||||
# 禁止实例化
|
# 禁止实例化
|
||||||
def __new__(cls):
|
def __new__(cls):
|
||||||
raise TypeError("Constants class cannot be instantiated")
|
raise TypeError("Constants class cannot be instantiated")
|
||||||
|
|||||||
@ -106,6 +106,7 @@ class Constants:
|
|||||||
"Data_Length_not_Correct": "(orgBcg和BCG长度不匹配)",
|
"Data_Length_not_Correct": "(orgBcg和BCG长度不匹配)",
|
||||||
"Artifact_Format_Not_Correct": "(体动长度或格式不正确)",
|
"Artifact_Format_Not_Correct": "(体动长度或格式不正确)",
|
||||||
"Data_Length_Not_Correct": "(信号长度不正确)",
|
"Data_Length_Not_Correct": "(信号长度不正确)",
|
||||||
|
"Mode_Undefined": "(模式未选择)",
|
||||||
|
|
||||||
"Open_Data_Exception": "(打开数据异常)",
|
"Open_Data_Exception": "(打开数据异常)",
|
||||||
"Process_Exception": "(处理异常)",
|
"Process_Exception": "(处理异常)",
|
||||||
@ -381,7 +382,21 @@ class Constants:
|
|||||||
background-color: #00ff00; /* 鼠标悬停时的背景颜色 */
|
background-color: #00ff00; /* 鼠标悬停时的背景颜色 */
|
||||||
}"""
|
}"""
|
||||||
|
|
||||||
# BCG质量标注
|
# BCG的质量标注
|
||||||
|
BCG_QUALITY_LABEL_COLUMN_LABEL: str = "label"
|
||||||
|
BCG_QUALITY_LABEL_COLUMN_REMARK: str = "remark"
|
||||||
|
BCG_QUALITY_LABEL_PLOT_LABEL_SIGNAL: str = "BCG"
|
||||||
|
BCG_QUALITY_LABEL_PLOT_LABEL_ARTIFACT: str = "Artifact"
|
||||||
|
BCG_QUALITY_LABEL_PLOT_LABEL_LONGEST_CONTINUOUS: str = "Longest_Continuous"
|
||||||
|
BCG_QUALITY_LABEL_10S_A: str = "a"
|
||||||
|
BCG_QUALITY_LABEL_10S_B: str = "b"
|
||||||
|
BCG_QUALITY_LABEL_10S_C: str = "c"
|
||||||
|
BCG_QUALITY_LABEL_30S_A1: str = "a"
|
||||||
|
BCG_QUALITY_LABEL_30S_A2: str = "b"
|
||||||
|
BCG_QUALITY_LABEL_30S_B1: str = "c"
|
||||||
|
BCG_QUALITY_LABEL_30S_B2: str = "d"
|
||||||
|
BCG_QUALITY_LABEL_30S_C: str = "e"
|
||||||
|
BCG_QUALITY_LABEL_TOBELABELED: str = "f"
|
||||||
|
|
||||||
|
|
||||||
# 呼吸可用性及间期标注
|
# 呼吸可用性及间期标注
|
||||||
@ -464,19 +479,6 @@ class Constants:
|
|||||||
|
|
||||||
|
|
||||||
# 质量打标
|
# 质量打标
|
||||||
BCG_QUALITY_LABEL_FILES_NOT_FOUND: str = f"无法找到{ConfigParams.BCG_QUALITY_LABEL_INPUT_BCG_FILENAME}{ConfigParams.ENDSWITH_TXT}或{ConfigParams.BCG_QUALITY_LABEL_INPUT_ARTIFACT_FILENAME}{ConfigParams.ENDSWITH_TXT},无法执行<BCG的质量标注>"
|
|
||||||
BCG_QUALITY_LABEL_FILES_FOUND: str = f"找到{ConfigParams.BCG_QUALITY_LABEL_INPUT_BCG_FILENAME}{ConfigParams.ENDSWITH_TXT}和{ConfigParams.BCG_QUALITY_LABEL_INPUT_ARTIFACT_FILENAME}{ConfigParams.ENDSWITH_TXT}"
|
|
||||||
BCG_QUALITY_LABEL_HISTORICAL_SAVE_FOUND: str = f"找到历史存档文件{ConfigParams.BCG_QUALITY_LABEL_SAVE_FILENAME}{ConfigParams.BCG_QUALITY_LABEL_SAVE_MODE_10S}{ConfigParams.ENDSWITH_CSV}或{ConfigParams.BCG_QUALITY_LABEL_SAVE_FILENAME}{ConfigParams.BCG_QUALITY_LABEL_SAVE_MODE_30S}{ConfigParams.ENDSWITH_CSV},已成功读取"
|
|
||||||
BCG_QUALITY_LABEL_MODE_UNSELECTED: str = "显示模式未选择"
|
|
||||||
BCG_QUALITY_LABEL_INPUT_SIGNAL_FAILURE: str = "导入信号失败,请检查信号长度"
|
|
||||||
BCG_QUALITY_LABEL_INPUT_ARTIFACT_FAILURE_FORMAT: str = "导入体动失败,请检查体动标签格式"
|
|
||||||
BCG_QUALITY_LABEL_INPUT_ARTIFACT_FAILURE_LENGTH: str = "导入体动失败,请检查体动长度是否为4的倍数"
|
|
||||||
|
|
||||||
BCG_QUALITY_LABEL_RUNNING: str = "开始执行任务<BCG的质量评估标注>"
|
|
||||||
BCG_QUALITY_LABEL_10S_MODE: str = f"{ConfigParams.BCG_QUALITY_LABEL_SAVE_MODE_10S}_MODE"
|
|
||||||
BCG_QUALITY_LABEL_30S_MODE: str = f"{ConfigParams.BCG_QUALITY_LABEL_SAVE_MODE_30S}_MODE"
|
|
||||||
BCG_QUALITY_LABEL_COLUMN_LABEL: str = "label"
|
|
||||||
BCG_QUALITY_LABEL_COLUMN_REMARK: str = "remark"
|
|
||||||
BCG_QUALITY_LABEL_VIEWING_THE_FIRST_PART: str = "你正在查看第1段信号"
|
BCG_QUALITY_LABEL_VIEWING_THE_FIRST_PART: str = "你正在查看第1段信号"
|
||||||
BCG_QUALITY_LABEL_VIEWING_THE_LAST_PART: str = "你正在查看最后1段信号"
|
BCG_QUALITY_LABEL_VIEWING_THE_LAST_PART: str = "你正在查看最后1段信号"
|
||||||
BCG_QUALITY_LABEL_VIEWING_THE_FIRST_PART_UNLABELED: str = "前面的片段都被打标,将跳转至第1段信号"
|
BCG_QUALITY_LABEL_VIEWING_THE_FIRST_PART_UNLABELED: str = "前面的片段都被打标,将跳转至第1段信号"
|
||||||
@ -491,27 +493,6 @@ class Constants:
|
|||||||
BCG_QUALITY_LABEL_LABEL_ALL_TO_TYPE_C: str = "已将所有片段标记为类型C"
|
BCG_QUALITY_LABEL_LABEL_ALL_TO_TYPE_C: str = "已将所有片段标记为类型C"
|
||||||
BCG_QUALITY_LABEL_LABEL_ARTIFACT_TO_TYPE_C_QUESTION_CONTENT: str = "你确定要将所有带有体动的片段标记为类型C"
|
BCG_QUALITY_LABEL_LABEL_ARTIFACT_TO_TYPE_C_QUESTION_CONTENT: str = "你确定要将所有带有体动的片段标记为类型C"
|
||||||
BCG_QUALITY_LABEL_LABEL_ARTIFACT_TO_TYPE_C: str = "已将所有带有体动的片段标记为类型C"
|
BCG_QUALITY_LABEL_LABEL_ARTIFACT_TO_TYPE_C: str = "已将所有带有体动的片段标记为类型C"
|
||||||
BCG_QUALITY_LABEL_PLOT_LABEL_SIGNAL: str = "BCG"
|
|
||||||
BCG_QUALITY_LABEL_PLOT_LABEL_ARTIFACT: str = "Artifact"
|
|
||||||
BCG_QUALITY_LABEL_PLOT_LABEL_LONGEST_CONTINUOUS: str = "Longest_Continuous"
|
|
||||||
BCG_QUALITY_LABEL_10S_A: str = "a"
|
|
||||||
BCG_QUALITY_LABEL_10S_B: str = "b"
|
|
||||||
BCG_QUALITY_LABEL_10S_C: str = "c"
|
|
||||||
BCG_QUALITY_LABEL_10S_A_LIST: str = "label_a"
|
|
||||||
BCG_QUALITY_LABEL_10S_B_LIST: str = "label_b"
|
|
||||||
BCG_QUALITY_LABEL_10S_C_LIST: str = "label_c"
|
|
||||||
BCG_QUALITY_LABEL_30S_A1: str = "a"
|
|
||||||
BCG_QUALITY_LABEL_30S_A2: str = "b"
|
|
||||||
BCG_QUALITY_LABEL_30S_B1: str = "c"
|
|
||||||
BCG_QUALITY_LABEL_30S_B2: str = "d"
|
|
||||||
BCG_QUALITY_LABEL_30S_C: str = "e"
|
|
||||||
BCG_QUALITY_LABEL_30S_A1_LIST: str = "label_a1"
|
|
||||||
BCG_QUALITY_LABEL_30S_A2_LIST: str = "label_a2"
|
|
||||||
BCG_QUALITY_LABEL_30S_B1_LIST: str = "label_b1"
|
|
||||||
BCG_QUALITY_LABEL_30S_B2_LIST: str = "label_b2"
|
|
||||||
BCG_QUALITY_LABEL_30S_C_LIST: str = "label_c"
|
|
||||||
BCG_QUALITY_LABEL_tobeLabeled: str = "f"
|
|
||||||
BCG_QUALITY_LABEL_tobeLabeled_LIST: str = "label_tobeLabeled"
|
|
||||||
BCG_QUALITY_LABEL_LABELBTN_STYLE: str = """
|
BCG_QUALITY_LABEL_LABELBTN_STYLE: str = """
|
||||||
QPushButton {
|
QPushButton {
|
||||||
background-color: orange; /* 设置背景颜色 */
|
background-color: orange; /* 设置背景颜色 */
|
||||||
|
|||||||
552
ui/MainWindow/MainWindow_bcg_quality_label.py
Normal file
552
ui/MainWindow/MainWindow_bcg_quality_label.py
Normal file
@ -0,0 +1,552 @@
|
|||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
## Form generated from reading UI file 'MainWindow_bcg_quality_label.ui'
|
||||||
|
##
|
||||||
|
## Created by: Qt User Interface Compiler version 6.8.2
|
||||||
|
##
|
||||||
|
## WARNING! All changes made in this file will be lost when recompiling UI file!
|
||||||
|
################################################################################
|
||||||
|
|
||||||
|
from PySide6.QtCore import (QCoreApplication, QDate, QDateTime, QLocale,
|
||||||
|
QMetaObject, QObject, QPoint, QRect,
|
||||||
|
QSize, QTime, QUrl, Qt)
|
||||||
|
from PySide6.QtGui import (QBrush, QColor, QConicalGradient, QCursor,
|
||||||
|
QFont, QFontDatabase, QGradient, QIcon,
|
||||||
|
QImage, QKeySequence, QLinearGradient, QPainter,
|
||||||
|
QPalette, QPixmap, QRadialGradient, QTransform)
|
||||||
|
from PySide6.QtWidgets import (QApplication, QCheckBox, QGridLayout, QGroupBox,
|
||||||
|
QHBoxLayout, QHeaderView, QLabel, QLineEdit,
|
||||||
|
QMainWindow, QPushButton, QSizePolicy, QSpacerItem,
|
||||||
|
QStatusBar, QTableWidget, QTableWidgetItem, QTextBrowser,
|
||||||
|
QVBoxLayout, QWidget)
|
||||||
|
|
||||||
|
class Ui_MainWindow_bcg_quality_label(object):
|
||||||
|
def setupUi(self, MainWindow_bcg_quality_label):
|
||||||
|
if not MainWindow_bcg_quality_label.objectName():
|
||||||
|
MainWindow_bcg_quality_label.setObjectName(u"MainWindow_bcg_quality_label")
|
||||||
|
MainWindow_bcg_quality_label.resize(1920, 1080)
|
||||||
|
self.centralwidget = QWidget(MainWindow_bcg_quality_label)
|
||||||
|
self.centralwidget.setObjectName(u"centralwidget")
|
||||||
|
self.gridLayout = QGridLayout(self.centralwidget)
|
||||||
|
self.gridLayout.setObjectName(u"gridLayout")
|
||||||
|
self.groupBox_canvas = QGroupBox(self.centralwidget)
|
||||||
|
self.groupBox_canvas.setObjectName(u"groupBox_canvas")
|
||||||
|
font = QFont()
|
||||||
|
font.setPointSize(10)
|
||||||
|
self.groupBox_canvas.setFont(font)
|
||||||
|
self.verticalLayout = QVBoxLayout(self.groupBox_canvas)
|
||||||
|
self.verticalLayout.setObjectName(u"verticalLayout")
|
||||||
|
self.verticalLayout_canvas = QVBoxLayout()
|
||||||
|
self.verticalLayout_canvas.setObjectName(u"verticalLayout_canvas")
|
||||||
|
|
||||||
|
self.verticalLayout.addLayout(self.verticalLayout_canvas)
|
||||||
|
|
||||||
|
|
||||||
|
self.gridLayout.addWidget(self.groupBox_canvas, 0, 1, 1, 1)
|
||||||
|
|
||||||
|
self.groupBox_left = QGroupBox(self.centralwidget)
|
||||||
|
self.groupBox_left.setObjectName(u"groupBox_left")
|
||||||
|
self.groupBox_left.setFont(font)
|
||||||
|
self.verticalLayout_2 = QVBoxLayout(self.groupBox_left)
|
||||||
|
self.verticalLayout_2.setObjectName(u"verticalLayout_2")
|
||||||
|
self.horizontalLayout = QHBoxLayout()
|
||||||
|
self.horizontalLayout.setObjectName(u"horizontalLayout")
|
||||||
|
self.pushButton_input_setting = QPushButton(self.groupBox_left)
|
||||||
|
self.pushButton_input_setting.setObjectName(u"pushButton_input_setting")
|
||||||
|
sizePolicy = QSizePolicy(QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Minimum)
|
||||||
|
sizePolicy.setHorizontalStretch(0)
|
||||||
|
sizePolicy.setVerticalStretch(0)
|
||||||
|
sizePolicy.setHeightForWidth(self.pushButton_input_setting.sizePolicy().hasHeightForWidth())
|
||||||
|
self.pushButton_input_setting.setSizePolicy(sizePolicy)
|
||||||
|
font1 = QFont()
|
||||||
|
font1.setPointSize(12)
|
||||||
|
self.pushButton_input_setting.setFont(font1)
|
||||||
|
|
||||||
|
self.horizontalLayout.addWidget(self.pushButton_input_setting)
|
||||||
|
|
||||||
|
self.pushButton_input = QPushButton(self.groupBox_left)
|
||||||
|
self.pushButton_input.setObjectName(u"pushButton_input")
|
||||||
|
sizePolicy.setHeightForWidth(self.pushButton_input.sizePolicy().hasHeightForWidth())
|
||||||
|
self.pushButton_input.setSizePolicy(sizePolicy)
|
||||||
|
self.pushButton_input.setFont(font1)
|
||||||
|
|
||||||
|
self.horizontalLayout.addWidget(self.pushButton_input)
|
||||||
|
|
||||||
|
|
||||||
|
self.verticalLayout_2.addLayout(self.horizontalLayout)
|
||||||
|
|
||||||
|
self.verticalSpacer = QSpacerItem(20, 40, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding)
|
||||||
|
|
||||||
|
self.verticalLayout_2.addItem(self.verticalSpacer)
|
||||||
|
|
||||||
|
self.groupBox_status = QGroupBox(self.groupBox_left)
|
||||||
|
self.groupBox_status.setObjectName(u"groupBox_status")
|
||||||
|
self.gridLayout_3 = QGridLayout(self.groupBox_status)
|
||||||
|
self.gridLayout_3.setObjectName(u"gridLayout_3")
|
||||||
|
self.label_5 = QLabel(self.groupBox_status)
|
||||||
|
self.label_5.setObjectName(u"label_5")
|
||||||
|
sizePolicy1 = QSizePolicy(QSizePolicy.Policy.Preferred, QSizePolicy.Policy.Fixed)
|
||||||
|
sizePolicy1.setHorizontalStretch(0)
|
||||||
|
sizePolicy1.setVerticalStretch(0)
|
||||||
|
sizePolicy1.setHeightForWidth(self.label_5.sizePolicy().hasHeightForWidth())
|
||||||
|
self.label_5.setSizePolicy(sizePolicy1)
|
||||||
|
self.label_5.setFont(font1)
|
||||||
|
|
||||||
|
self.gridLayout_3.addWidget(self.label_5, 0, 0, 1, 1)
|
||||||
|
|
||||||
|
self.label_6 = QLabel(self.groupBox_status)
|
||||||
|
self.label_6.setObjectName(u"label_6")
|
||||||
|
sizePolicy1.setHeightForWidth(self.label_6.sizePolicy().hasHeightForWidth())
|
||||||
|
self.label_6.setSizePolicy(sizePolicy1)
|
||||||
|
self.label_6.setFont(font1)
|
||||||
|
|
||||||
|
self.gridLayout_3.addWidget(self.label_6, 1, 0, 1, 1)
|
||||||
|
|
||||||
|
self.label_12 = QLabel(self.groupBox_status)
|
||||||
|
self.label_12.setObjectName(u"label_12")
|
||||||
|
sizePolicy1.setHeightForWidth(self.label_12.sizePolicy().hasHeightForWidth())
|
||||||
|
self.label_12.setSizePolicy(sizePolicy1)
|
||||||
|
self.label_12.setFont(font1)
|
||||||
|
|
||||||
|
self.gridLayout_3.addWidget(self.label_12, 2, 0, 1, 1)
|
||||||
|
|
||||||
|
self.label_13 = QLabel(self.groupBox_status)
|
||||||
|
self.label_13.setObjectName(u"label_13")
|
||||||
|
sizePolicy1.setHeightForWidth(self.label_13.sizePolicy().hasHeightForWidth())
|
||||||
|
self.label_13.setSizePolicy(sizePolicy1)
|
||||||
|
self.label_13.setFont(font1)
|
||||||
|
|
||||||
|
self.gridLayout_3.addWidget(self.label_13, 3, 0, 1, 1)
|
||||||
|
|
||||||
|
self.lineEdit_artifact_time_percentage = QLineEdit(self.groupBox_status)
|
||||||
|
self.lineEdit_artifact_time_percentage.setObjectName(u"lineEdit_artifact_time_percentage")
|
||||||
|
self.lineEdit_artifact_time_percentage.setEnabled(False)
|
||||||
|
self.lineEdit_artifact_time_percentage.setFont(font1)
|
||||||
|
|
||||||
|
self.gridLayout_3.addWidget(self.lineEdit_artifact_time_percentage, 3, 1, 1, 1)
|
||||||
|
|
||||||
|
self.lineEdit_longest_continuous_time = QLineEdit(self.groupBox_status)
|
||||||
|
self.lineEdit_longest_continuous_time.setObjectName(u"lineEdit_longest_continuous_time")
|
||||||
|
self.lineEdit_longest_continuous_time.setEnabled(False)
|
||||||
|
self.lineEdit_longest_continuous_time.setFont(font1)
|
||||||
|
|
||||||
|
self.gridLayout_3.addWidget(self.lineEdit_longest_continuous_time, 2, 1, 1, 1)
|
||||||
|
|
||||||
|
self.lineEdit_data_part_num = QLineEdit(self.groupBox_status)
|
||||||
|
self.lineEdit_data_part_num.setObjectName(u"lineEdit_data_part_num")
|
||||||
|
self.lineEdit_data_part_num.setEnabled(False)
|
||||||
|
self.lineEdit_data_part_num.setFont(font1)
|
||||||
|
|
||||||
|
self.gridLayout_3.addWidget(self.lineEdit_data_part_num, 1, 1, 1, 1)
|
||||||
|
|
||||||
|
self.lineEdit_current_part_time = QLineEdit(self.groupBox_status)
|
||||||
|
self.lineEdit_current_part_time.setObjectName(u"lineEdit_current_part_time")
|
||||||
|
self.lineEdit_current_part_time.setEnabled(False)
|
||||||
|
self.lineEdit_current_part_time.setFont(font1)
|
||||||
|
|
||||||
|
self.gridLayout_3.addWidget(self.lineEdit_current_part_time, 0, 1, 1, 1)
|
||||||
|
|
||||||
|
|
||||||
|
self.verticalLayout_2.addWidget(self.groupBox_status)
|
||||||
|
|
||||||
|
self.verticalSpacer_5 = QSpacerItem(20, 40, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding)
|
||||||
|
|
||||||
|
self.verticalLayout_2.addItem(self.verticalSpacer_5)
|
||||||
|
|
||||||
|
self.horizontalLayout_2 = QHBoxLayout()
|
||||||
|
self.horizontalLayout_2.setObjectName(u"horizontalLayout_2")
|
||||||
|
self.groupBox_artifact_type = QGroupBox(self.groupBox_left)
|
||||||
|
self.groupBox_artifact_type.setObjectName(u"groupBox_artifact_type")
|
||||||
|
self.gridLayout_6 = QGridLayout(self.groupBox_artifact_type)
|
||||||
|
self.gridLayout_6.setObjectName(u"gridLayout_6")
|
||||||
|
self.checkBox_allin = QCheckBox(self.groupBox_artifact_type)
|
||||||
|
self.checkBox_allin.setObjectName(u"checkBox_allin")
|
||||||
|
font2 = QFont()
|
||||||
|
font2.setPointSize(20)
|
||||||
|
self.checkBox_allin.setFont(font2)
|
||||||
|
self.checkBox_allin.setChecked(True)
|
||||||
|
|
||||||
|
self.gridLayout_6.addWidget(self.checkBox_allin, 0, 1, 1, 1)
|
||||||
|
|
||||||
|
self.checkBox_type1 = QCheckBox(self.groupBox_artifact_type)
|
||||||
|
self.checkBox_type1.setObjectName(u"checkBox_type1")
|
||||||
|
self.checkBox_type1.setFont(font1)
|
||||||
|
self.checkBox_type1.setChecked(True)
|
||||||
|
|
||||||
|
self.gridLayout_6.addWidget(self.checkBox_type1, 0, 2, 1, 1)
|
||||||
|
|
||||||
|
self.checkBox_type2 = QCheckBox(self.groupBox_artifact_type)
|
||||||
|
self.checkBox_type2.setObjectName(u"checkBox_type2")
|
||||||
|
self.checkBox_type2.setFont(font1)
|
||||||
|
self.checkBox_type2.setChecked(True)
|
||||||
|
|
||||||
|
self.gridLayout_6.addWidget(self.checkBox_type2, 1, 1, 1, 1)
|
||||||
|
|
||||||
|
self.checkBox_type3 = QCheckBox(self.groupBox_artifact_type)
|
||||||
|
self.checkBox_type3.setObjectName(u"checkBox_type3")
|
||||||
|
self.checkBox_type3.setFont(font1)
|
||||||
|
self.checkBox_type3.setChecked(True)
|
||||||
|
|
||||||
|
self.gridLayout_6.addWidget(self.checkBox_type3, 1, 2, 1, 1)
|
||||||
|
|
||||||
|
self.checkBox_type4 = QCheckBox(self.groupBox_artifact_type)
|
||||||
|
self.checkBox_type4.setObjectName(u"checkBox_type4")
|
||||||
|
self.checkBox_type4.setFont(font1)
|
||||||
|
self.checkBox_type4.setChecked(True)
|
||||||
|
|
||||||
|
self.gridLayout_6.addWidget(self.checkBox_type4, 2, 1, 1, 1)
|
||||||
|
|
||||||
|
self.checkBox_type5 = QCheckBox(self.groupBox_artifact_type)
|
||||||
|
self.checkBox_type5.setObjectName(u"checkBox_type5")
|
||||||
|
self.checkBox_type5.setFont(font1)
|
||||||
|
self.checkBox_type5.setChecked(True)
|
||||||
|
|
||||||
|
self.gridLayout_6.addWidget(self.checkBox_type5, 2, 2, 1, 1)
|
||||||
|
|
||||||
|
|
||||||
|
self.horizontalLayout_2.addWidget(self.groupBox_artifact_type)
|
||||||
|
|
||||||
|
self.groupBox_function = QGroupBox(self.groupBox_left)
|
||||||
|
self.groupBox_function.setObjectName(u"groupBox_function")
|
||||||
|
self.gridLayout_13 = QGridLayout(self.groupBox_function)
|
||||||
|
self.gridLayout_13.setObjectName(u"gridLayout_13")
|
||||||
|
self.pushButton_invalid_signal_label = QPushButton(self.groupBox_function)
|
||||||
|
self.pushButton_invalid_signal_label.setObjectName(u"pushButton_invalid_signal_label")
|
||||||
|
sizePolicy2 = QSizePolicy(QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Preferred)
|
||||||
|
sizePolicy2.setHorizontalStretch(0)
|
||||||
|
sizePolicy2.setVerticalStretch(0)
|
||||||
|
sizePolicy2.setHeightForWidth(self.pushButton_invalid_signal_label.sizePolicy().hasHeightForWidth())
|
||||||
|
self.pushButton_invalid_signal_label.setSizePolicy(sizePolicy2)
|
||||||
|
self.pushButton_invalid_signal_label.setFont(font1)
|
||||||
|
|
||||||
|
self.gridLayout_13.addWidget(self.pushButton_invalid_signal_label, 0, 0, 1, 1)
|
||||||
|
|
||||||
|
self.pushButton_Ctype_signal_label = QPushButton(self.groupBox_function)
|
||||||
|
self.pushButton_Ctype_signal_label.setObjectName(u"pushButton_Ctype_signal_label")
|
||||||
|
sizePolicy2.setHeightForWidth(self.pushButton_Ctype_signal_label.sizePolicy().hasHeightForWidth())
|
||||||
|
self.pushButton_Ctype_signal_label.setSizePolicy(sizePolicy2)
|
||||||
|
self.pushButton_Ctype_signal_label.setFont(font1)
|
||||||
|
|
||||||
|
self.gridLayout_13.addWidget(self.pushButton_Ctype_signal_label, 1, 0, 1, 1)
|
||||||
|
|
||||||
|
|
||||||
|
self.horizontalLayout_2.addWidget(self.groupBox_function)
|
||||||
|
|
||||||
|
self.horizontalLayout_2.setStretch(0, 2)
|
||||||
|
self.horizontalLayout_2.setStretch(1, 1)
|
||||||
|
|
||||||
|
self.verticalLayout_2.addLayout(self.horizontalLayout_2)
|
||||||
|
|
||||||
|
self.verticalSpacer_4 = QSpacerItem(20, 40, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding)
|
||||||
|
|
||||||
|
self.verticalLayout_2.addItem(self.verticalSpacer_4)
|
||||||
|
|
||||||
|
self.groupBox_operation = QGroupBox(self.groupBox_left)
|
||||||
|
self.groupBox_operation.setObjectName(u"groupBox_operation")
|
||||||
|
self.gridLayout_7 = QGridLayout(self.groupBox_operation)
|
||||||
|
self.gridLayout_7.setObjectName(u"gridLayout_7")
|
||||||
|
self.pushButton_prev = QPushButton(self.groupBox_operation)
|
||||||
|
self.pushButton_prev.setObjectName(u"pushButton_prev")
|
||||||
|
sizePolicy2.setHeightForWidth(self.pushButton_prev.sizePolicy().hasHeightForWidth())
|
||||||
|
self.pushButton_prev.setSizePolicy(sizePolicy2)
|
||||||
|
self.pushButton_prev.setFont(font1)
|
||||||
|
|
||||||
|
self.gridLayout_7.addWidget(self.pushButton_prev, 4, 0, 1, 1)
|
||||||
|
|
||||||
|
self.checkBox_examine_tobeLabeled = QCheckBox(self.groupBox_operation)
|
||||||
|
self.checkBox_examine_tobeLabeled.setObjectName(u"checkBox_examine_tobeLabeled")
|
||||||
|
self.checkBox_examine_tobeLabeled.setFont(font1)
|
||||||
|
|
||||||
|
self.gridLayout_7.addWidget(self.checkBox_examine_tobeLabeled, 1, 0, 1, 1)
|
||||||
|
|
||||||
|
self.checkBox_highlight_longest_continuous = QCheckBox(self.groupBox_operation)
|
||||||
|
self.checkBox_highlight_longest_continuous.setObjectName(u"checkBox_highlight_longest_continuous")
|
||||||
|
self.checkBox_highlight_longest_continuous.setFont(font1)
|
||||||
|
|
||||||
|
self.gridLayout_7.addWidget(self.checkBox_highlight_longest_continuous, 0, 0, 1, 1)
|
||||||
|
|
||||||
|
self.pushButton_next = QPushButton(self.groupBox_operation)
|
||||||
|
self.pushButton_next.setObjectName(u"pushButton_next")
|
||||||
|
sizePolicy2.setHeightForWidth(self.pushButton_next.sizePolicy().hasHeightForWidth())
|
||||||
|
self.pushButton_next.setSizePolicy(sizePolicy2)
|
||||||
|
self.pushButton_next.setFont(font1)
|
||||||
|
|
||||||
|
self.gridLayout_7.addWidget(self.pushButton_next, 4, 1, 1, 1)
|
||||||
|
|
||||||
|
self.label = QLabel(self.groupBox_operation)
|
||||||
|
self.label.setObjectName(u"label")
|
||||||
|
self.label.setFont(font1)
|
||||||
|
self.label.setAlignment(Qt.AlignmentFlag.AlignCenter)
|
||||||
|
|
||||||
|
self.gridLayout_7.addWidget(self.label, 2, 0, 1, 1)
|
||||||
|
|
||||||
|
self.checkBox_display_afterfilter = QCheckBox(self.groupBox_operation)
|
||||||
|
self.checkBox_display_afterfilter.setObjectName(u"checkBox_display_afterfilter")
|
||||||
|
self.checkBox_display_afterfilter.setFont(font1)
|
||||||
|
|
||||||
|
self.gridLayout_7.addWidget(self.checkBox_display_afterfilter, 0, 1, 1, 1)
|
||||||
|
|
||||||
|
self.lineEdit_remark = QLineEdit(self.groupBox_operation)
|
||||||
|
self.lineEdit_remark.setObjectName(u"lineEdit_remark")
|
||||||
|
self.lineEdit_remark.setEnabled(True)
|
||||||
|
self.lineEdit_remark.setFont(font1)
|
||||||
|
|
||||||
|
self.gridLayout_7.addWidget(self.lineEdit_remark, 2, 1, 1, 1)
|
||||||
|
|
||||||
|
self.verticalSpacer_2 = QSpacerItem(20, 40, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding)
|
||||||
|
|
||||||
|
self.gridLayout_7.addItem(self.verticalSpacer_2, 3, 0, 1, 2)
|
||||||
|
|
||||||
|
self.gridLayout_7.setRowStretch(0, 1)
|
||||||
|
self.gridLayout_7.setRowStretch(1, 1)
|
||||||
|
self.gridLayout_7.setRowStretch(2, 1)
|
||||||
|
self.gridLayout_7.setRowStretch(3, 1)
|
||||||
|
self.gridLayout_7.setRowStretch(4, 3)
|
||||||
|
self.gridLayout_7.setColumnStretch(0, 1)
|
||||||
|
self.gridLayout_7.setColumnStretch(1, 1)
|
||||||
|
|
||||||
|
self.verticalLayout_2.addWidget(self.groupBox_operation)
|
||||||
|
|
||||||
|
self.verticalSpacer_3 = QSpacerItem(20, 40, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding)
|
||||||
|
|
||||||
|
self.verticalLayout_2.addItem(self.verticalSpacer_3)
|
||||||
|
|
||||||
|
self.horizontalLayout_3 = QHBoxLayout()
|
||||||
|
self.horizontalLayout_3.setObjectName(u"horizontalLayout_3")
|
||||||
|
self.pushButton_save = QPushButton(self.groupBox_left)
|
||||||
|
self.pushButton_save.setObjectName(u"pushButton_save")
|
||||||
|
sizePolicy.setHeightForWidth(self.pushButton_save.sizePolicy().hasHeightForWidth())
|
||||||
|
self.pushButton_save.setSizePolicy(sizePolicy)
|
||||||
|
self.pushButton_save.setFont(font1)
|
||||||
|
|
||||||
|
self.horizontalLayout_3.addWidget(self.pushButton_save)
|
||||||
|
|
||||||
|
|
||||||
|
self.verticalLayout_2.addLayout(self.horizontalLayout_3)
|
||||||
|
|
||||||
|
self.groupBox_4 = QGroupBox(self.groupBox_left)
|
||||||
|
self.groupBox_4.setObjectName(u"groupBox_4")
|
||||||
|
self.verticalLayout_6 = QVBoxLayout(self.groupBox_4)
|
||||||
|
self.verticalLayout_6.setObjectName(u"verticalLayout_6")
|
||||||
|
self.textBrowser_info = QTextBrowser(self.groupBox_4)
|
||||||
|
self.textBrowser_info.setObjectName(u"textBrowser_info")
|
||||||
|
|
||||||
|
self.verticalLayout_6.addWidget(self.textBrowser_info)
|
||||||
|
|
||||||
|
|
||||||
|
self.verticalLayout_2.addWidget(self.groupBox_4)
|
||||||
|
|
||||||
|
self.verticalLayout_2.setStretch(0, 2)
|
||||||
|
self.verticalLayout_2.setStretch(1, 1)
|
||||||
|
self.verticalLayout_2.setStretch(2, 4)
|
||||||
|
self.verticalLayout_2.setStretch(3, 1)
|
||||||
|
self.verticalLayout_2.setStretch(4, 6)
|
||||||
|
self.verticalLayout_2.setStretch(5, 1)
|
||||||
|
self.verticalLayout_2.setStretch(6, 6)
|
||||||
|
self.verticalLayout_2.setStretch(7, 1)
|
||||||
|
self.verticalLayout_2.setStretch(8, 2)
|
||||||
|
self.verticalLayout_2.setStretch(9, 5)
|
||||||
|
|
||||||
|
self.gridLayout.addWidget(self.groupBox_left, 0, 0, 1, 1)
|
||||||
|
|
||||||
|
self.groupBox_right = QGroupBox(self.centralwidget)
|
||||||
|
self.groupBox_right.setObjectName(u"groupBox_right")
|
||||||
|
self.groupBox_right.setFont(font)
|
||||||
|
self.gridLayout_4 = QGridLayout(self.groupBox_right)
|
||||||
|
self.gridLayout_4.setObjectName(u"gridLayout_4")
|
||||||
|
self.verticalSpacer_9 = QSpacerItem(20, 40, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding)
|
||||||
|
|
||||||
|
self.gridLayout_4.addItem(self.verticalSpacer_9, 7, 0, 1, 2)
|
||||||
|
|
||||||
|
self.verticalSpacer_7 = QSpacerItem(20, 40, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding)
|
||||||
|
|
||||||
|
self.gridLayout_4.addItem(self.verticalSpacer_7, 3, 0, 1, 2)
|
||||||
|
|
||||||
|
self.pushButton_b1 = QPushButton(self.groupBox_right)
|
||||||
|
self.pushButton_b1.setObjectName(u"pushButton_b1")
|
||||||
|
sizePolicy2.setHeightForWidth(self.pushButton_b1.sizePolicy().hasHeightForWidth())
|
||||||
|
self.pushButton_b1.setSizePolicy(sizePolicy2)
|
||||||
|
font3 = QFont()
|
||||||
|
font3.setPointSize(24)
|
||||||
|
self.pushButton_b1.setFont(font3)
|
||||||
|
|
||||||
|
self.gridLayout_4.addWidget(self.pushButton_b1, 4, 0, 1, 1)
|
||||||
|
|
||||||
|
self.tableWidget_c = QTableWidget(self.groupBox_right)
|
||||||
|
if (self.tableWidget_c.columnCount() < 1):
|
||||||
|
self.tableWidget_c.setColumnCount(1)
|
||||||
|
self.tableWidget_c.setObjectName(u"tableWidget_c")
|
||||||
|
self.tableWidget_c.setFont(font1)
|
||||||
|
self.tableWidget_c.setColumnCount(1)
|
||||||
|
|
||||||
|
self.gridLayout_4.addWidget(self.tableWidget_c, 8, 1, 1, 1)
|
||||||
|
|
||||||
|
self.tableWidget_a1 = QTableWidget(self.groupBox_right)
|
||||||
|
if (self.tableWidget_a1.columnCount() < 1):
|
||||||
|
self.tableWidget_a1.setColumnCount(1)
|
||||||
|
self.tableWidget_a1.setObjectName(u"tableWidget_a1")
|
||||||
|
self.tableWidget_a1.setFont(font1)
|
||||||
|
self.tableWidget_a1.setColumnCount(1)
|
||||||
|
self.tableWidget_a1.horizontalHeader().setMinimumSectionSize(33)
|
||||||
|
self.tableWidget_a1.horizontalHeader().setDefaultSectionSize(75)
|
||||||
|
self.tableWidget_a1.verticalHeader().setMinimumSectionSize(32)
|
||||||
|
|
||||||
|
self.gridLayout_4.addWidget(self.tableWidget_a1, 0, 1, 1, 1)
|
||||||
|
|
||||||
|
self.pushButton_b2 = QPushButton(self.groupBox_right)
|
||||||
|
self.pushButton_b2.setObjectName(u"pushButton_b2")
|
||||||
|
sizePolicy2.setHeightForWidth(self.pushButton_b2.sizePolicy().hasHeightForWidth())
|
||||||
|
self.pushButton_b2.setSizePolicy(sizePolicy2)
|
||||||
|
self.pushButton_b2.setFont(font3)
|
||||||
|
|
||||||
|
self.gridLayout_4.addWidget(self.pushButton_b2, 6, 0, 1, 1)
|
||||||
|
|
||||||
|
self.pushButton_f = QPushButton(self.groupBox_right)
|
||||||
|
self.pushButton_f.setObjectName(u"pushButton_f")
|
||||||
|
sizePolicy2.setHeightForWidth(self.pushButton_f.sizePolicy().hasHeightForWidth())
|
||||||
|
self.pushButton_f.setSizePolicy(sizePolicy2)
|
||||||
|
self.pushButton_f.setFont(font3)
|
||||||
|
|
||||||
|
self.gridLayout_4.addWidget(self.pushButton_f, 10, 0, 1, 1)
|
||||||
|
|
||||||
|
self.tableWidget_f = QTableWidget(self.groupBox_right)
|
||||||
|
if (self.tableWidget_f.columnCount() < 1):
|
||||||
|
self.tableWidget_f.setColumnCount(1)
|
||||||
|
self.tableWidget_f.setObjectName(u"tableWidget_f")
|
||||||
|
self.tableWidget_f.setFont(font1)
|
||||||
|
self.tableWidget_f.setColumnCount(1)
|
||||||
|
|
||||||
|
self.gridLayout_4.addWidget(self.tableWidget_f, 10, 1, 1, 1)
|
||||||
|
|
||||||
|
self.pushButton_a2 = QPushButton(self.groupBox_right)
|
||||||
|
self.pushButton_a2.setObjectName(u"pushButton_a2")
|
||||||
|
sizePolicy2.setHeightForWidth(self.pushButton_a2.sizePolicy().hasHeightForWidth())
|
||||||
|
self.pushButton_a2.setSizePolicy(sizePolicy2)
|
||||||
|
self.pushButton_a2.setFont(font3)
|
||||||
|
|
||||||
|
self.gridLayout_4.addWidget(self.pushButton_a2, 2, 0, 1, 1)
|
||||||
|
|
||||||
|
self.verticalSpacer_6 = QSpacerItem(20, 40, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding)
|
||||||
|
|
||||||
|
self.gridLayout_4.addItem(self.verticalSpacer_6, 1, 0, 1, 2)
|
||||||
|
|
||||||
|
self.tableWidget_b1 = QTableWidget(self.groupBox_right)
|
||||||
|
if (self.tableWidget_b1.columnCount() < 1):
|
||||||
|
self.tableWidget_b1.setColumnCount(1)
|
||||||
|
self.tableWidget_b1.setObjectName(u"tableWidget_b1")
|
||||||
|
self.tableWidget_b1.setFont(font1)
|
||||||
|
self.tableWidget_b1.setColumnCount(1)
|
||||||
|
|
||||||
|
self.gridLayout_4.addWidget(self.tableWidget_b1, 4, 1, 1, 1)
|
||||||
|
|
||||||
|
self.pushButton_a1 = QPushButton(self.groupBox_right)
|
||||||
|
self.pushButton_a1.setObjectName(u"pushButton_a1")
|
||||||
|
sizePolicy2.setHeightForWidth(self.pushButton_a1.sizePolicy().hasHeightForWidth())
|
||||||
|
self.pushButton_a1.setSizePolicy(sizePolicy2)
|
||||||
|
self.pushButton_a1.setFont(font3)
|
||||||
|
|
||||||
|
self.gridLayout_4.addWidget(self.pushButton_a1, 0, 0, 1, 1)
|
||||||
|
|
||||||
|
self.tableWidget_b2 = QTableWidget(self.groupBox_right)
|
||||||
|
if (self.tableWidget_b2.columnCount() < 1):
|
||||||
|
self.tableWidget_b2.setColumnCount(1)
|
||||||
|
self.tableWidget_b2.setObjectName(u"tableWidget_b2")
|
||||||
|
self.tableWidget_b2.setFont(font1)
|
||||||
|
self.tableWidget_b2.setColumnCount(1)
|
||||||
|
|
||||||
|
self.gridLayout_4.addWidget(self.tableWidget_b2, 6, 1, 1, 1)
|
||||||
|
|
||||||
|
self.tableWidget_a2 = QTableWidget(self.groupBox_right)
|
||||||
|
if (self.tableWidget_a2.columnCount() < 1):
|
||||||
|
self.tableWidget_a2.setColumnCount(1)
|
||||||
|
self.tableWidget_a2.setObjectName(u"tableWidget_a2")
|
||||||
|
self.tableWidget_a2.setFont(font1)
|
||||||
|
self.tableWidget_a2.setColumnCount(1)
|
||||||
|
|
||||||
|
self.gridLayout_4.addWidget(self.tableWidget_a2, 2, 1, 1, 1)
|
||||||
|
|
||||||
|
self.verticalSpacer_8 = QSpacerItem(20, 40, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding)
|
||||||
|
|
||||||
|
self.gridLayout_4.addItem(self.verticalSpacer_8, 5, 0, 1, 2)
|
||||||
|
|
||||||
|
self.pushButton_c = QPushButton(self.groupBox_right)
|
||||||
|
self.pushButton_c.setObjectName(u"pushButton_c")
|
||||||
|
sizePolicy2.setHeightForWidth(self.pushButton_c.sizePolicy().hasHeightForWidth())
|
||||||
|
self.pushButton_c.setSizePolicy(sizePolicy2)
|
||||||
|
self.pushButton_c.setFont(font3)
|
||||||
|
|
||||||
|
self.gridLayout_4.addWidget(self.pushButton_c, 8, 0, 1, 1)
|
||||||
|
|
||||||
|
self.verticalSpacer_10 = QSpacerItem(20, 40, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding)
|
||||||
|
|
||||||
|
self.gridLayout_4.addItem(self.verticalSpacer_10, 9, 0, 1, 2)
|
||||||
|
|
||||||
|
self.gridLayout_4.setRowStretch(0, 5)
|
||||||
|
self.gridLayout_4.setRowStretch(1, 1)
|
||||||
|
self.gridLayout_4.setRowStretch(2, 5)
|
||||||
|
self.gridLayout_4.setRowStretch(3, 1)
|
||||||
|
self.gridLayout_4.setRowStretch(4, 5)
|
||||||
|
self.gridLayout_4.setRowStretch(5, 1)
|
||||||
|
self.gridLayout_4.setRowStretch(6, 5)
|
||||||
|
self.gridLayout_4.setRowStretch(7, 1)
|
||||||
|
self.gridLayout_4.setRowStretch(8, 5)
|
||||||
|
self.gridLayout_4.setRowStretch(9, 1)
|
||||||
|
self.gridLayout_4.setRowStretch(10, 5)
|
||||||
|
self.gridLayout_4.setColumnStretch(0, 1)
|
||||||
|
self.gridLayout_4.setColumnStretch(1, 2)
|
||||||
|
|
||||||
|
self.gridLayout.addWidget(self.groupBox_right, 0, 2, 1, 1)
|
||||||
|
|
||||||
|
self.gridLayout.setColumnStretch(0, 4)
|
||||||
|
self.gridLayout.setColumnStretch(1, 15)
|
||||||
|
self.gridLayout.setColumnStretch(2, 4)
|
||||||
|
MainWindow_bcg_quality_label.setCentralWidget(self.centralwidget)
|
||||||
|
self.statusbar = QStatusBar(MainWindow_bcg_quality_label)
|
||||||
|
self.statusbar.setObjectName(u"statusbar")
|
||||||
|
MainWindow_bcg_quality_label.setStatusBar(self.statusbar)
|
||||||
|
|
||||||
|
self.retranslateUi(MainWindow_bcg_quality_label)
|
||||||
|
|
||||||
|
QMetaObject.connectSlotsByName(MainWindow_bcg_quality_label)
|
||||||
|
# setupUi
|
||||||
|
|
||||||
|
def retranslateUi(self, MainWindow_bcg_quality_label):
|
||||||
|
MainWindow_bcg_quality_label.setWindowTitle(QCoreApplication.translate("MainWindow_bcg_quality_label", u"BCG\u7684\u8d28\u91cf\u6807\u6ce8", None))
|
||||||
|
self.groupBox_canvas.setTitle(QCoreApplication.translate("MainWindow_bcg_quality_label", u"\u7ed8\u56fe\u533a", None))
|
||||||
|
self.groupBox_left.setTitle(QCoreApplication.translate("MainWindow_bcg_quality_label", u"BCG\u7684\u8d28\u91cf\u6807\u6ce8", None))
|
||||||
|
self.pushButton_input_setting.setText(QCoreApplication.translate("MainWindow_bcg_quality_label", u"\u5bfc\u5165\u8bbe\u7f6e", None))
|
||||||
|
self.pushButton_input.setText(QCoreApplication.translate("MainWindow_bcg_quality_label", u"\u5f00\u59cb\u5bfc\u5165", None))
|
||||||
|
self.groupBox_status.setTitle(QCoreApplication.translate("MainWindow_bcg_quality_label", u"\u8fd0\u884c\u72b6\u6001", None))
|
||||||
|
self.label_5.setText(QCoreApplication.translate("MainWindow_bcg_quality_label", u"\u5f53\u524d\u7247\u6bb5\u65f6\u95f4", None))
|
||||||
|
self.label_6.setText(QCoreApplication.translate("MainWindow_bcg_quality_label", u"\u5f53\u524d\u7247\u6bb5/\u7247\u6bb5\u603b\u6570", None))
|
||||||
|
self.label_12.setText(QCoreApplication.translate("MainWindow_bcg_quality_label", u"\u6700\u957f\u8fde\u7eed\u65f6\u95f4", None))
|
||||||
|
self.label_13.setText(QCoreApplication.translate("MainWindow_bcg_quality_label", u"\u4f53\u52a8\u65f6\u95f4\u5360\u6bd4", None))
|
||||||
|
self.groupBox_artifact_type.setTitle(QCoreApplication.translate("MainWindow_bcg_quality_label", u"\u4f53\u52a8\u7c7b\u578b", None))
|
||||||
|
self.checkBox_allin.setText(QCoreApplication.translate("MainWindow_bcg_quality_label", u"\u5168\u9009", None))
|
||||||
|
self.checkBox_type1.setText(QCoreApplication.translate("MainWindow_bcg_quality_label", u"\u7c7b\u578b1", None))
|
||||||
|
self.checkBox_type2.setText(QCoreApplication.translate("MainWindow_bcg_quality_label", u"\u7c7b\u578b2", None))
|
||||||
|
self.checkBox_type3.setText(QCoreApplication.translate("MainWindow_bcg_quality_label", u"\u7c7b\u578b3", None))
|
||||||
|
self.checkBox_type4.setText(QCoreApplication.translate("MainWindow_bcg_quality_label", u"\u7c7b\u578b4", None))
|
||||||
|
self.checkBox_type5.setText(QCoreApplication.translate("MainWindow_bcg_quality_label", u"\u7c7b\u578b5", None))
|
||||||
|
self.groupBox_function.setTitle(QCoreApplication.translate("MainWindow_bcg_quality_label", u"\u529f\u80fd", None))
|
||||||
|
self.pushButton_invalid_signal_label.setText(QCoreApplication.translate("MainWindow_bcg_quality_label", u"\u65e0\u6548\u4fe1\u53f7\u6253\u6807", None))
|
||||||
|
self.pushButton_Ctype_signal_label.setText(QCoreApplication.translate("MainWindow_bcg_quality_label", u"C\u7c7b\u4fe1\u53f7\u6253\u6807", None))
|
||||||
|
self.groupBox_operation.setTitle(QCoreApplication.translate("MainWindow_bcg_quality_label", u"\u64cd\u4f5c", None))
|
||||||
|
self.pushButton_prev.setText(QCoreApplication.translate("MainWindow_bcg_quality_label", u"<(A)", None))
|
||||||
|
self.checkBox_examine_tobeLabeled.setText(QCoreApplication.translate("MainWindow_bcg_quality_label", u"\u4ec5\u67e5\u672a\u6807\u7247\u6bb5", None))
|
||||||
|
self.checkBox_highlight_longest_continuous.setText(QCoreApplication.translate("MainWindow_bcg_quality_label", u"\u9ad8\u4eae\u6700\u957f\u8fde\u7eed", None))
|
||||||
|
self.pushButton_next.setText(QCoreApplication.translate("MainWindow_bcg_quality_label", u">(D)", None))
|
||||||
|
self.label.setText(QCoreApplication.translate("MainWindow_bcg_quality_label", u"\u8f93\u5165\u5907\u6ce8", None))
|
||||||
|
self.checkBox_display_afterfilter.setText(QCoreApplication.translate("MainWindow_bcg_quality_label", u"\u53bb\u9664\u5de5\u9891\u566a\u58f0", None))
|
||||||
|
self.pushButton_save.setText(QCoreApplication.translate("MainWindow_bcg_quality_label", u"\u5bfc\u51fa\u6807\u7b7e", None))
|
||||||
|
self.groupBox_4.setTitle(QCoreApplication.translate("MainWindow_bcg_quality_label", u"\u65e5\u5fd7", None))
|
||||||
|
self.groupBox_right.setTitle(QCoreApplication.translate("MainWindow_bcg_quality_label", u"\u6807\u7b7e\u8bb0\u5f55", None))
|
||||||
|
self.pushButton_b1.setText(QCoreApplication.translate("MainWindow_bcg_quality_label", u"b1", None))
|
||||||
|
self.pushButton_b2.setText(QCoreApplication.translate("MainWindow_bcg_quality_label", u"b2", None))
|
||||||
|
self.pushButton_f.setText(QCoreApplication.translate("MainWindow_bcg_quality_label", u"\u5220\u9664", None))
|
||||||
|
self.pushButton_a2.setText(QCoreApplication.translate("MainWindow_bcg_quality_label", u"a2", None))
|
||||||
|
self.pushButton_a1.setText(QCoreApplication.translate("MainWindow_bcg_quality_label", u"a1", None))
|
||||||
|
self.pushButton_c.setText(QCoreApplication.translate("MainWindow_bcg_quality_label", u"c", None))
|
||||||
|
# retranslateUi
|
||||||
|
|
||||||
853
ui/MainWindow/MainWindow_bcg_quality_label.ui
Normal file
853
ui/MainWindow/MainWindow_bcg_quality_label.ui
Normal file
@ -0,0 +1,853 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<ui version="4.0">
|
||||||
|
<class>MainWindow_bcg_quality_label</class>
|
||||||
|
<widget class="QMainWindow" name="MainWindow_bcg_quality_label">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>0</x>
|
||||||
|
<y>0</y>
|
||||||
|
<width>1920</width>
|
||||||
|
<height>1080</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="windowTitle">
|
||||||
|
<string>BCG的质量标注</string>
|
||||||
|
</property>
|
||||||
|
<widget class="QWidget" name="centralwidget">
|
||||||
|
<layout class="QGridLayout" name="gridLayout" columnstretch="4,15,4">
|
||||||
|
<item row="0" column="1">
|
||||||
|
<widget class="QGroupBox" name="groupBox_canvas">
|
||||||
|
<property name="font">
|
||||||
|
<font>
|
||||||
|
<pointsize>10</pointsize>
|
||||||
|
</font>
|
||||||
|
</property>
|
||||||
|
<property name="title">
|
||||||
|
<string>绘图区</string>
|
||||||
|
</property>
|
||||||
|
<layout class="QVBoxLayout" name="verticalLayout">
|
||||||
|
<item>
|
||||||
|
<layout class="QVBoxLayout" name="verticalLayout_canvas"/>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="0" column="0">
|
||||||
|
<widget class="QGroupBox" name="groupBox_left">
|
||||||
|
<property name="font">
|
||||||
|
<font>
|
||||||
|
<pointsize>10</pointsize>
|
||||||
|
</font>
|
||||||
|
</property>
|
||||||
|
<property name="title">
|
||||||
|
<string>BCG的质量标注</string>
|
||||||
|
</property>
|
||||||
|
<layout class="QVBoxLayout" name="verticalLayout_2" stretch="2,1,4,1,6,1,6,1,2,5">
|
||||||
|
<item>
|
||||||
|
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||||
|
<item>
|
||||||
|
<widget class="QPushButton" name="pushButton_input_setting">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Minimum" vsizetype="Minimum">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="font">
|
||||||
|
<font>
|
||||||
|
<pointsize>12</pointsize>
|
||||||
|
</font>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>导入设置</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QPushButton" name="pushButton_input">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Minimum" vsizetype="Minimum">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="font">
|
||||||
|
<font>
|
||||||
|
<pointsize>12</pointsize>
|
||||||
|
</font>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>开始导入</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<spacer name="verticalSpacer">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Orientation::Vertical</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeHint" stdset="0">
|
||||||
|
<size>
|
||||||
|
<width>20</width>
|
||||||
|
<height>40</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</spacer>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QGroupBox" name="groupBox_status">
|
||||||
|
<property name="title">
|
||||||
|
<string>运行状态</string>
|
||||||
|
</property>
|
||||||
|
<layout class="QGridLayout" name="gridLayout_3">
|
||||||
|
<item row="0" column="0">
|
||||||
|
<widget class="QLabel" name="label_5">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="font">
|
||||||
|
<font>
|
||||||
|
<pointsize>12</pointsize>
|
||||||
|
</font>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>当前片段时间</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="0">
|
||||||
|
<widget class="QLabel" name="label_6">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="font">
|
||||||
|
<font>
|
||||||
|
<pointsize>12</pointsize>
|
||||||
|
</font>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>当前片段/片段总数</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="2" column="0">
|
||||||
|
<widget class="QLabel" name="label_12">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="font">
|
||||||
|
<font>
|
||||||
|
<pointsize>12</pointsize>
|
||||||
|
</font>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>最长连续时间</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="3" column="0">
|
||||||
|
<widget class="QLabel" name="label_13">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="font">
|
||||||
|
<font>
|
||||||
|
<pointsize>12</pointsize>
|
||||||
|
</font>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>体动时间占比</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="3" column="1">
|
||||||
|
<widget class="QLineEdit" name="lineEdit_artifact_time_percentage">
|
||||||
|
<property name="enabled">
|
||||||
|
<bool>false</bool>
|
||||||
|
</property>
|
||||||
|
<property name="font">
|
||||||
|
<font>
|
||||||
|
<pointsize>12</pointsize>
|
||||||
|
</font>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="2" column="1">
|
||||||
|
<widget class="QLineEdit" name="lineEdit_longest_continuous_time">
|
||||||
|
<property name="enabled">
|
||||||
|
<bool>false</bool>
|
||||||
|
</property>
|
||||||
|
<property name="font">
|
||||||
|
<font>
|
||||||
|
<pointsize>12</pointsize>
|
||||||
|
</font>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="1">
|
||||||
|
<widget class="QLineEdit" name="lineEdit_data_part_num">
|
||||||
|
<property name="enabled">
|
||||||
|
<bool>false</bool>
|
||||||
|
</property>
|
||||||
|
<property name="font">
|
||||||
|
<font>
|
||||||
|
<pointsize>12</pointsize>
|
||||||
|
</font>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="0" column="1">
|
||||||
|
<widget class="QLineEdit" name="lineEdit_current_part_time">
|
||||||
|
<property name="enabled">
|
||||||
|
<bool>false</bool>
|
||||||
|
</property>
|
||||||
|
<property name="font">
|
||||||
|
<font>
|
||||||
|
<pointsize>12</pointsize>
|
||||||
|
</font>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<spacer name="verticalSpacer_5">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Orientation::Vertical</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeHint" stdset="0">
|
||||||
|
<size>
|
||||||
|
<width>20</width>
|
||||||
|
<height>40</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</spacer>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<layout class="QHBoxLayout" name="horizontalLayout_2" stretch="2,1">
|
||||||
|
<item>
|
||||||
|
<widget class="QGroupBox" name="groupBox_artifact_type">
|
||||||
|
<property name="title">
|
||||||
|
<string>体动类型</string>
|
||||||
|
</property>
|
||||||
|
<layout class="QGridLayout" name="gridLayout_6">
|
||||||
|
<item row="0" column="1">
|
||||||
|
<widget class="QCheckBox" name="checkBox_allin">
|
||||||
|
<property name="font">
|
||||||
|
<font>
|
||||||
|
<pointsize>20</pointsize>
|
||||||
|
</font>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>全选</string>
|
||||||
|
</property>
|
||||||
|
<property name="checked">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="0" column="2">
|
||||||
|
<widget class="QCheckBox" name="checkBox_type1">
|
||||||
|
<property name="font">
|
||||||
|
<font>
|
||||||
|
<pointsize>12</pointsize>
|
||||||
|
</font>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>类型1</string>
|
||||||
|
</property>
|
||||||
|
<property name="checked">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="1">
|
||||||
|
<widget class="QCheckBox" name="checkBox_type2">
|
||||||
|
<property name="font">
|
||||||
|
<font>
|
||||||
|
<pointsize>12</pointsize>
|
||||||
|
</font>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>类型2</string>
|
||||||
|
</property>
|
||||||
|
<property name="checked">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="2">
|
||||||
|
<widget class="QCheckBox" name="checkBox_type3">
|
||||||
|
<property name="font">
|
||||||
|
<font>
|
||||||
|
<pointsize>12</pointsize>
|
||||||
|
</font>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>类型3</string>
|
||||||
|
</property>
|
||||||
|
<property name="checked">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="2" column="1">
|
||||||
|
<widget class="QCheckBox" name="checkBox_type4">
|
||||||
|
<property name="font">
|
||||||
|
<font>
|
||||||
|
<pointsize>12</pointsize>
|
||||||
|
</font>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>类型4</string>
|
||||||
|
</property>
|
||||||
|
<property name="checked">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="2" column="2">
|
||||||
|
<widget class="QCheckBox" name="checkBox_type5">
|
||||||
|
<property name="font">
|
||||||
|
<font>
|
||||||
|
<pointsize>12</pointsize>
|
||||||
|
</font>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>类型5</string>
|
||||||
|
</property>
|
||||||
|
<property name="checked">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QGroupBox" name="groupBox_function">
|
||||||
|
<property name="title">
|
||||||
|
<string>功能</string>
|
||||||
|
</property>
|
||||||
|
<layout class="QGridLayout" name="gridLayout_13">
|
||||||
|
<item row="0" column="0">
|
||||||
|
<widget class="QPushButton" name="pushButton_invalid_signal_label">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Minimum" vsizetype="Preferred">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="font">
|
||||||
|
<font>
|
||||||
|
<pointsize>12</pointsize>
|
||||||
|
</font>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>无效信号打标</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="0">
|
||||||
|
<widget class="QPushButton" name="pushButton_Ctype_signal_label">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Minimum" vsizetype="Preferred">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="font">
|
||||||
|
<font>
|
||||||
|
<pointsize>12</pointsize>
|
||||||
|
</font>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>C类信号打标</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<spacer name="verticalSpacer_4">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Orientation::Vertical</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeHint" stdset="0">
|
||||||
|
<size>
|
||||||
|
<width>20</width>
|
||||||
|
<height>40</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</spacer>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QGroupBox" name="groupBox_operation">
|
||||||
|
<property name="title">
|
||||||
|
<string>操作</string>
|
||||||
|
</property>
|
||||||
|
<layout class="QGridLayout" name="gridLayout_7" rowstretch="1,1,1,1,3" columnstretch="1,1">
|
||||||
|
<item row="4" column="0">
|
||||||
|
<widget class="QPushButton" name="pushButton_prev">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Minimum" vsizetype="Preferred">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="font">
|
||||||
|
<font>
|
||||||
|
<pointsize>12</pointsize>
|
||||||
|
</font>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string><(A)</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="0">
|
||||||
|
<widget class="QCheckBox" name="checkBox_examine_tobeLabeled">
|
||||||
|
<property name="font">
|
||||||
|
<font>
|
||||||
|
<pointsize>12</pointsize>
|
||||||
|
</font>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>仅查未标片段</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="0" column="0">
|
||||||
|
<widget class="QCheckBox" name="checkBox_highlight_longest_continuous">
|
||||||
|
<property name="font">
|
||||||
|
<font>
|
||||||
|
<pointsize>12</pointsize>
|
||||||
|
</font>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>高亮最长连续</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="4" column="1">
|
||||||
|
<widget class="QPushButton" name="pushButton_next">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Minimum" vsizetype="Preferred">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="font">
|
||||||
|
<font>
|
||||||
|
<pointsize>12</pointsize>
|
||||||
|
</font>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>>(D)</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="2" column="0">
|
||||||
|
<widget class="QLabel" name="label">
|
||||||
|
<property name="font">
|
||||||
|
<font>
|
||||||
|
<pointsize>12</pointsize>
|
||||||
|
</font>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>输入备注</string>
|
||||||
|
</property>
|
||||||
|
<property name="alignment">
|
||||||
|
<set>Qt::AlignmentFlag::AlignCenter</set>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="0" column="1">
|
||||||
|
<widget class="QCheckBox" name="checkBox_display_afterfilter">
|
||||||
|
<property name="font">
|
||||||
|
<font>
|
||||||
|
<pointsize>12</pointsize>
|
||||||
|
</font>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>去除工频噪声</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="2" column="1">
|
||||||
|
<widget class="QLineEdit" name="lineEdit_remark">
|
||||||
|
<property name="enabled">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
<property name="font">
|
||||||
|
<font>
|
||||||
|
<pointsize>12</pointsize>
|
||||||
|
</font>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="3" column="0" colspan="2">
|
||||||
|
<spacer name="verticalSpacer_2">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Orientation::Vertical</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeHint" stdset="0">
|
||||||
|
<size>
|
||||||
|
<width>20</width>
|
||||||
|
<height>40</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</spacer>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<spacer name="verticalSpacer_3">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Orientation::Vertical</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeHint" stdset="0">
|
||||||
|
<size>
|
||||||
|
<width>20</width>
|
||||||
|
<height>40</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</spacer>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<layout class="QHBoxLayout" name="horizontalLayout_3">
|
||||||
|
<item>
|
||||||
|
<widget class="QPushButton" name="pushButton_save">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Minimum" vsizetype="Minimum">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="font">
|
||||||
|
<font>
|
||||||
|
<pointsize>12</pointsize>
|
||||||
|
</font>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>导出标签</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QGroupBox" name="groupBox_4">
|
||||||
|
<property name="title">
|
||||||
|
<string>日志</string>
|
||||||
|
</property>
|
||||||
|
<layout class="QVBoxLayout" name="verticalLayout_6">
|
||||||
|
<item>
|
||||||
|
<widget class="QTextBrowser" name="textBrowser_info"/>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="0" column="2">
|
||||||
|
<widget class="QGroupBox" name="groupBox_right">
|
||||||
|
<property name="font">
|
||||||
|
<font>
|
||||||
|
<pointsize>10</pointsize>
|
||||||
|
</font>
|
||||||
|
</property>
|
||||||
|
<property name="title">
|
||||||
|
<string>标签记录</string>
|
||||||
|
</property>
|
||||||
|
<layout class="QGridLayout" name="gridLayout_4" rowstretch="5,1,5,1,5,1,5,1,5,1,5" columnstretch="1,2">
|
||||||
|
<item row="7" column="0" colspan="2">
|
||||||
|
<spacer name="verticalSpacer_9">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Orientation::Vertical</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeHint" stdset="0">
|
||||||
|
<size>
|
||||||
|
<width>20</width>
|
||||||
|
<height>40</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</spacer>
|
||||||
|
</item>
|
||||||
|
<item row="3" column="0" colspan="2">
|
||||||
|
<spacer name="verticalSpacer_7">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Orientation::Vertical</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeHint" stdset="0">
|
||||||
|
<size>
|
||||||
|
<width>20</width>
|
||||||
|
<height>40</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</spacer>
|
||||||
|
</item>
|
||||||
|
<item row="4" column="0">
|
||||||
|
<widget class="QPushButton" name="pushButton_b1">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Minimum" vsizetype="Preferred">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="font">
|
||||||
|
<font>
|
||||||
|
<pointsize>24</pointsize>
|
||||||
|
</font>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>b1</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="8" column="1">
|
||||||
|
<widget class="QTableWidget" name="tableWidget_c">
|
||||||
|
<property name="font">
|
||||||
|
<font>
|
||||||
|
<pointsize>12</pointsize>
|
||||||
|
</font>
|
||||||
|
</property>
|
||||||
|
<property name="columnCount">
|
||||||
|
<number>1</number>
|
||||||
|
</property>
|
||||||
|
<column/>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="0" column="1">
|
||||||
|
<widget class="QTableWidget" name="tableWidget_a1">
|
||||||
|
<property name="font">
|
||||||
|
<font>
|
||||||
|
<pointsize>12</pointsize>
|
||||||
|
</font>
|
||||||
|
</property>
|
||||||
|
<property name="columnCount">
|
||||||
|
<number>1</number>
|
||||||
|
</property>
|
||||||
|
<attribute name="horizontalHeaderMinimumSectionSize">
|
||||||
|
<number>33</number>
|
||||||
|
</attribute>
|
||||||
|
<attribute name="horizontalHeaderDefaultSectionSize">
|
||||||
|
<number>75</number>
|
||||||
|
</attribute>
|
||||||
|
<attribute name="verticalHeaderMinimumSectionSize">
|
||||||
|
<number>32</number>
|
||||||
|
</attribute>
|
||||||
|
<column/>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="6" column="0">
|
||||||
|
<widget class="QPushButton" name="pushButton_b2">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Minimum" vsizetype="Preferred">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="font">
|
||||||
|
<font>
|
||||||
|
<pointsize>24</pointsize>
|
||||||
|
</font>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>b2</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="10" column="0">
|
||||||
|
<widget class="QPushButton" name="pushButton_f">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Minimum" vsizetype="Preferred">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="font">
|
||||||
|
<font>
|
||||||
|
<pointsize>24</pointsize>
|
||||||
|
</font>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>删除</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="10" column="1">
|
||||||
|
<widget class="QTableWidget" name="tableWidget_f">
|
||||||
|
<property name="font">
|
||||||
|
<font>
|
||||||
|
<pointsize>12</pointsize>
|
||||||
|
</font>
|
||||||
|
</property>
|
||||||
|
<property name="columnCount">
|
||||||
|
<number>1</number>
|
||||||
|
</property>
|
||||||
|
<column/>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="2" column="0">
|
||||||
|
<widget class="QPushButton" name="pushButton_a2">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Minimum" vsizetype="Preferred">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="font">
|
||||||
|
<font>
|
||||||
|
<pointsize>24</pointsize>
|
||||||
|
</font>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>a2</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="0" colspan="2">
|
||||||
|
<spacer name="verticalSpacer_6">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Orientation::Vertical</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeHint" stdset="0">
|
||||||
|
<size>
|
||||||
|
<width>20</width>
|
||||||
|
<height>40</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</spacer>
|
||||||
|
</item>
|
||||||
|
<item row="4" column="1">
|
||||||
|
<widget class="QTableWidget" name="tableWidget_b1">
|
||||||
|
<property name="font">
|
||||||
|
<font>
|
||||||
|
<pointsize>12</pointsize>
|
||||||
|
</font>
|
||||||
|
</property>
|
||||||
|
<property name="columnCount">
|
||||||
|
<number>1</number>
|
||||||
|
</property>
|
||||||
|
<column/>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="0" column="0">
|
||||||
|
<widget class="QPushButton" name="pushButton_a1">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Minimum" vsizetype="Preferred">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="font">
|
||||||
|
<font>
|
||||||
|
<pointsize>24</pointsize>
|
||||||
|
</font>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>a1</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="6" column="1">
|
||||||
|
<widget class="QTableWidget" name="tableWidget_b2">
|
||||||
|
<property name="font">
|
||||||
|
<font>
|
||||||
|
<pointsize>12</pointsize>
|
||||||
|
</font>
|
||||||
|
</property>
|
||||||
|
<property name="columnCount">
|
||||||
|
<number>1</number>
|
||||||
|
</property>
|
||||||
|
<column/>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="2" column="1">
|
||||||
|
<widget class="QTableWidget" name="tableWidget_a2">
|
||||||
|
<property name="font">
|
||||||
|
<font>
|
||||||
|
<pointsize>12</pointsize>
|
||||||
|
</font>
|
||||||
|
</property>
|
||||||
|
<property name="columnCount">
|
||||||
|
<number>1</number>
|
||||||
|
</property>
|
||||||
|
<column/>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="5" column="0" colspan="2">
|
||||||
|
<spacer name="verticalSpacer_8">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Orientation::Vertical</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeHint" stdset="0">
|
||||||
|
<size>
|
||||||
|
<width>20</width>
|
||||||
|
<height>40</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</spacer>
|
||||||
|
</item>
|
||||||
|
<item row="8" column="0">
|
||||||
|
<widget class="QPushButton" name="pushButton_c">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Minimum" vsizetype="Preferred">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="font">
|
||||||
|
<font>
|
||||||
|
<pointsize>24</pointsize>
|
||||||
|
</font>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>c</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="9" column="0" colspan="2">
|
||||||
|
<spacer name="verticalSpacer_10">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Orientation::Vertical</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeHint" stdset="0">
|
||||||
|
<size>
|
||||||
|
<width>20</width>
|
||||||
|
<height>40</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</spacer>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
<widget class="QStatusBar" name="statusbar"/>
|
||||||
|
</widget>
|
||||||
|
<resources/>
|
||||||
|
<connections/>
|
||||||
|
</ui>
|
||||||
177
ui/setting/bcg_quality_label_input_setting.py
Normal file
177
ui/setting/bcg_quality_label_input_setting.py
Normal file
@ -0,0 +1,177 @@
|
|||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
## Form generated from reading UI file 'bcg_quality_label_input_setting.ui'
|
||||||
|
##
|
||||||
|
## Created by: Qt User Interface Compiler version 6.8.2
|
||||||
|
##
|
||||||
|
## WARNING! All changes made in this file will be lost when recompiling UI file!
|
||||||
|
################################################################################
|
||||||
|
|
||||||
|
from PySide6.QtCore import (QCoreApplication, QDate, QDateTime, QLocale,
|
||||||
|
QMetaObject, QObject, QPoint, QRect,
|
||||||
|
QSize, QTime, QUrl, Qt)
|
||||||
|
from PySide6.QtGui import (QBrush, QColor, QConicalGradient, QCursor,
|
||||||
|
QFont, QFontDatabase, QGradient, QIcon,
|
||||||
|
QImage, QKeySequence, QLinearGradient, QPainter,
|
||||||
|
QPalette, QPixmap, QRadialGradient, QTransform)
|
||||||
|
from PySide6.QtWidgets import (QApplication, QGridLayout, QGroupBox, QHBoxLayout,
|
||||||
|
QLabel, QMainWindow, QPlainTextEdit, QPushButton,
|
||||||
|
QRadioButton, QSizePolicy, QSpacerItem, QSpinBox,
|
||||||
|
QStatusBar, QVBoxLayout, QWidget)
|
||||||
|
|
||||||
|
class Ui_MainWindow_bcg_quality_label_input_setting(object):
|
||||||
|
def setupUi(self, MainWindow_bcg_quality_label_input_setting):
|
||||||
|
if not MainWindow_bcg_quality_label_input_setting.objectName():
|
||||||
|
MainWindow_bcg_quality_label_input_setting.setObjectName(u"MainWindow_bcg_quality_label_input_setting")
|
||||||
|
MainWindow_bcg_quality_label_input_setting.resize(540, 540)
|
||||||
|
self.centralwidget = QWidget(MainWindow_bcg_quality_label_input_setting)
|
||||||
|
self.centralwidget.setObjectName(u"centralwidget")
|
||||||
|
self.gridLayout = QGridLayout(self.centralwidget)
|
||||||
|
self.gridLayout.setObjectName(u"gridLayout")
|
||||||
|
self.pushButton_cancel = QPushButton(self.centralwidget)
|
||||||
|
self.pushButton_cancel.setObjectName(u"pushButton_cancel")
|
||||||
|
font = QFont()
|
||||||
|
font.setPointSize(12)
|
||||||
|
self.pushButton_cancel.setFont(font)
|
||||||
|
|
||||||
|
self.gridLayout.addWidget(self.pushButton_cancel, 1, 3, 1, 1)
|
||||||
|
|
||||||
|
self.groupBox = QGroupBox(self.centralwidget)
|
||||||
|
self.groupBox.setObjectName(u"groupBox")
|
||||||
|
font1 = QFont()
|
||||||
|
font1.setPointSize(10)
|
||||||
|
self.groupBox.setFont(font1)
|
||||||
|
self.verticalLayout_2 = QVBoxLayout(self.groupBox)
|
||||||
|
self.verticalLayout_2.setObjectName(u"verticalLayout_2")
|
||||||
|
self.groupBox_file_path_input_signal_BCG = QGroupBox(self.groupBox)
|
||||||
|
self.groupBox_file_path_input_signal_BCG.setObjectName(u"groupBox_file_path_input_signal_BCG")
|
||||||
|
self.verticalLayout_5 = QVBoxLayout(self.groupBox_file_path_input_signal_BCG)
|
||||||
|
self.verticalLayout_5.setObjectName(u"verticalLayout_5")
|
||||||
|
self.horizontalLayout_2 = QHBoxLayout()
|
||||||
|
self.horizontalLayout_2.setObjectName(u"horizontalLayout_2")
|
||||||
|
self.label_2 = QLabel(self.groupBox_file_path_input_signal_BCG)
|
||||||
|
self.label_2.setObjectName(u"label_2")
|
||||||
|
self.label_2.setFont(font)
|
||||||
|
|
||||||
|
self.horizontalLayout_2.addWidget(self.label_2)
|
||||||
|
|
||||||
|
self.spinBox_input_freq_signal_BCG = QSpinBox(self.groupBox_file_path_input_signal_BCG)
|
||||||
|
self.spinBox_input_freq_signal_BCG.setObjectName(u"spinBox_input_freq_signal_BCG")
|
||||||
|
self.spinBox_input_freq_signal_BCG.setFont(font)
|
||||||
|
self.spinBox_input_freq_signal_BCG.setMinimum(1)
|
||||||
|
self.spinBox_input_freq_signal_BCG.setMaximum(1000000)
|
||||||
|
|
||||||
|
self.horizontalLayout_2.addWidget(self.spinBox_input_freq_signal_BCG)
|
||||||
|
|
||||||
|
|
||||||
|
self.verticalLayout_5.addLayout(self.horizontalLayout_2)
|
||||||
|
|
||||||
|
self.plainTextEdit_file_path_input_signal_BCG = QPlainTextEdit(self.groupBox_file_path_input_signal_BCG)
|
||||||
|
self.plainTextEdit_file_path_input_signal_BCG.setObjectName(u"plainTextEdit_file_path_input_signal_BCG")
|
||||||
|
|
||||||
|
self.verticalLayout_5.addWidget(self.plainTextEdit_file_path_input_signal_BCG)
|
||||||
|
|
||||||
|
self.verticalLayout_5.setStretch(0, 1)
|
||||||
|
self.verticalLayout_5.setStretch(1, 2)
|
||||||
|
|
||||||
|
self.verticalLayout_2.addWidget(self.groupBox_file_path_input_signal_BCG)
|
||||||
|
|
||||||
|
self.groupBox_file_path_input_artifact = QGroupBox(self.groupBox)
|
||||||
|
self.groupBox_file_path_input_artifact.setObjectName(u"groupBox_file_path_input_artifact")
|
||||||
|
self.verticalLayout_6 = QVBoxLayout(self.groupBox_file_path_input_artifact)
|
||||||
|
self.verticalLayout_6.setObjectName(u"verticalLayout_6")
|
||||||
|
self.plainTextEdit_file_path_input_artifact = QPlainTextEdit(self.groupBox_file_path_input_artifact)
|
||||||
|
self.plainTextEdit_file_path_input_artifact.setObjectName(u"plainTextEdit_file_path_input_artifact")
|
||||||
|
|
||||||
|
self.verticalLayout_6.addWidget(self.plainTextEdit_file_path_input_artifact)
|
||||||
|
|
||||||
|
self.verticalLayout_6.setStretch(0, 2)
|
||||||
|
|
||||||
|
self.verticalLayout_2.addWidget(self.groupBox_file_path_input_artifact)
|
||||||
|
|
||||||
|
self.groupBox_file_path_save = QGroupBox(self.groupBox)
|
||||||
|
self.groupBox_file_path_save.setObjectName(u"groupBox_file_path_save")
|
||||||
|
self.verticalLayout_4 = QVBoxLayout(self.groupBox_file_path_save)
|
||||||
|
self.verticalLayout_4.setObjectName(u"verticalLayout_4")
|
||||||
|
self.plainTextEdit_file_path_save = QPlainTextEdit(self.groupBox_file_path_save)
|
||||||
|
self.plainTextEdit_file_path_save.setObjectName(u"plainTextEdit_file_path_save")
|
||||||
|
|
||||||
|
self.verticalLayout_4.addWidget(self.plainTextEdit_file_path_save)
|
||||||
|
|
||||||
|
|
||||||
|
self.verticalLayout_2.addWidget(self.groupBox_file_path_save)
|
||||||
|
|
||||||
|
self.groupBox_display_mode = QGroupBox(self.groupBox)
|
||||||
|
self.groupBox_display_mode.setObjectName(u"groupBox_display_mode")
|
||||||
|
self.horizontalLayout = QHBoxLayout(self.groupBox_display_mode)
|
||||||
|
self.horizontalLayout.setObjectName(u"horizontalLayout")
|
||||||
|
self.horizontalSpacer = QSpacerItem(40, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum)
|
||||||
|
|
||||||
|
self.horizontalLayout.addItem(self.horizontalSpacer)
|
||||||
|
|
||||||
|
self.radioButton_30s_mode = QRadioButton(self.groupBox_display_mode)
|
||||||
|
self.radioButton_30s_mode.setObjectName(u"radioButton_30s_mode")
|
||||||
|
self.radioButton_30s_mode.setFont(font)
|
||||||
|
|
||||||
|
self.horizontalLayout.addWidget(self.radioButton_30s_mode)
|
||||||
|
|
||||||
|
self.horizontalSpacer_3 = QSpacerItem(40, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum)
|
||||||
|
|
||||||
|
self.horizontalLayout.addItem(self.horizontalSpacer_3)
|
||||||
|
|
||||||
|
self.radioButton_10s_mode = QRadioButton(self.groupBox_display_mode)
|
||||||
|
self.radioButton_10s_mode.setObjectName(u"radioButton_10s_mode")
|
||||||
|
self.radioButton_10s_mode.setFont(font)
|
||||||
|
|
||||||
|
self.horizontalLayout.addWidget(self.radioButton_10s_mode)
|
||||||
|
|
||||||
|
self.horizontalSpacer_2 = QSpacerItem(40, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum)
|
||||||
|
|
||||||
|
self.horizontalLayout.addItem(self.horizontalSpacer_2)
|
||||||
|
|
||||||
|
|
||||||
|
self.verticalLayout_2.addWidget(self.groupBox_display_mode)
|
||||||
|
|
||||||
|
self.verticalLayout_2.setStretch(0, 3)
|
||||||
|
self.verticalLayout_2.setStretch(1, 2)
|
||||||
|
self.verticalLayout_2.setStretch(2, 2)
|
||||||
|
self.verticalLayout_2.setStretch(3, 2)
|
||||||
|
|
||||||
|
self.gridLayout.addWidget(self.groupBox, 0, 0, 1, 4)
|
||||||
|
|
||||||
|
self.pushButton_confirm = QPushButton(self.centralwidget)
|
||||||
|
self.pushButton_confirm.setObjectName(u"pushButton_confirm")
|
||||||
|
self.pushButton_confirm.setFont(font)
|
||||||
|
|
||||||
|
self.gridLayout.addWidget(self.pushButton_confirm, 1, 2, 1, 1)
|
||||||
|
|
||||||
|
MainWindow_bcg_quality_label_input_setting.setCentralWidget(self.centralwidget)
|
||||||
|
self.statusbar = QStatusBar(MainWindow_bcg_quality_label_input_setting)
|
||||||
|
self.statusbar.setObjectName(u"statusbar")
|
||||||
|
MainWindow_bcg_quality_label_input_setting.setStatusBar(self.statusbar)
|
||||||
|
|
||||||
|
self.retranslateUi(MainWindow_bcg_quality_label_input_setting)
|
||||||
|
|
||||||
|
QMetaObject.connectSlotsByName(MainWindow_bcg_quality_label_input_setting)
|
||||||
|
# setupUi
|
||||||
|
|
||||||
|
def retranslateUi(self, MainWindow_bcg_quality_label_input_setting):
|
||||||
|
MainWindow_bcg_quality_label_input_setting.setWindowTitle(QCoreApplication.translate("MainWindow_bcg_quality_label_input_setting", u"\u5bfc\u5165\u8bbe\u7f6e", None))
|
||||||
|
self.pushButton_cancel.setText(QCoreApplication.translate("MainWindow_bcg_quality_label_input_setting", u"\u53d6\u6d88", None))
|
||||||
|
self.groupBox.setTitle(QCoreApplication.translate("MainWindow_bcg_quality_label_input_setting", u"\u6587\u4ef6\u8def\u5f84", None))
|
||||||
|
self.groupBox_file_path_input_signal_BCG.setTitle(QCoreApplication.translate("MainWindow_bcg_quality_label_input_setting", u"\u540c\u6b65\u540e\u7684BCG\u8def\u5f84", None))
|
||||||
|
self.label_2.setText(QCoreApplication.translate("MainWindow_bcg_quality_label_input_setting", u"\u91c7\u6837\u7387(Hz)\uff1a", None))
|
||||||
|
self.plainTextEdit_file_path_input_signal_BCG.setPlainText("")
|
||||||
|
self.plainTextEdit_file_path_input_signal_BCG.setPlaceholderText(QCoreApplication.translate("MainWindow_bcg_quality_label_input_setting", u"\u6587\u4ef6\u8def\u5f84", None))
|
||||||
|
self.groupBox_file_path_input_artifact.setTitle(QCoreApplication.translate("MainWindow_bcg_quality_label_input_setting", u"\u4f53\u52a8Artifact_a\u8def\u5f84", None))
|
||||||
|
self.plainTextEdit_file_path_input_artifact.setPlainText("")
|
||||||
|
self.plainTextEdit_file_path_input_artifact.setPlaceholderText(QCoreApplication.translate("MainWindow_bcg_quality_label_input_setting", u"\u6587\u4ef6\u8def\u5f84", None))
|
||||||
|
self.groupBox_file_path_save.setTitle(QCoreApplication.translate("MainWindow_bcg_quality_label_input_setting", u"BCG\u8d28\u91cf\u6807\u7b7e\u4fdd\u5b58\u8def\u5f84", None))
|
||||||
|
self.plainTextEdit_file_path_save.setPlaceholderText(QCoreApplication.translate("MainWindow_bcg_quality_label_input_setting", u"\u4fdd\u5b58\u8def\u5f84", None))
|
||||||
|
self.groupBox_display_mode.setTitle(QCoreApplication.translate("MainWindow_bcg_quality_label_input_setting", u"\u663e\u793a\u6a21\u5f0f", None))
|
||||||
|
self.radioButton_30s_mode.setText(QCoreApplication.translate("MainWindow_bcg_quality_label_input_setting", u"30s\u6a21\u5f0f", None))
|
||||||
|
self.radioButton_10s_mode.setText(QCoreApplication.translate("MainWindow_bcg_quality_label_input_setting", u"10s\u6a21\u5f0f", None))
|
||||||
|
self.pushButton_confirm.setText(QCoreApplication.translate("MainWindow_bcg_quality_label_input_setting", u"\u786e\u5b9a", None))
|
||||||
|
# retranslateUi
|
||||||
|
|
||||||
219
ui/setting/bcg_quality_label_input_setting.ui
Normal file
219
ui/setting/bcg_quality_label_input_setting.ui
Normal file
@ -0,0 +1,219 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<ui version="4.0">
|
||||||
|
<class>MainWindow_bcg_quality_label_input_setting</class>
|
||||||
|
<widget class="QMainWindow" name="MainWindow_bcg_quality_label_input_setting">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>0</x>
|
||||||
|
<y>0</y>
|
||||||
|
<width>540</width>
|
||||||
|
<height>540</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="windowTitle">
|
||||||
|
<string>导入设置</string>
|
||||||
|
</property>
|
||||||
|
<widget class="QWidget" name="centralwidget">
|
||||||
|
<layout class="QGridLayout" name="gridLayout">
|
||||||
|
<item row="1" column="3">
|
||||||
|
<widget class="QPushButton" name="pushButton_cancel">
|
||||||
|
<property name="font">
|
||||||
|
<font>
|
||||||
|
<pointsize>12</pointsize>
|
||||||
|
</font>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>取消</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="0" column="0" colspan="4">
|
||||||
|
<widget class="QGroupBox" name="groupBox">
|
||||||
|
<property name="font">
|
||||||
|
<font>
|
||||||
|
<pointsize>10</pointsize>
|
||||||
|
</font>
|
||||||
|
</property>
|
||||||
|
<property name="title">
|
||||||
|
<string>文件路径</string>
|
||||||
|
</property>
|
||||||
|
<layout class="QVBoxLayout" name="verticalLayout_2" stretch="3,2,2,2">
|
||||||
|
<item>
|
||||||
|
<widget class="QGroupBox" name="groupBox_file_path_input_signal_BCG">
|
||||||
|
<property name="title">
|
||||||
|
<string>同步后的BCG路径</string>
|
||||||
|
</property>
|
||||||
|
<layout class="QVBoxLayout" name="verticalLayout_5" stretch="1,2">
|
||||||
|
<item>
|
||||||
|
<layout class="QHBoxLayout" name="horizontalLayout_2">
|
||||||
|
<item>
|
||||||
|
<widget class="QLabel" name="label_2">
|
||||||
|
<property name="font">
|
||||||
|
<font>
|
||||||
|
<pointsize>12</pointsize>
|
||||||
|
</font>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>采样率(Hz):</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QSpinBox" name="spinBox_input_freq_signal_BCG">
|
||||||
|
<property name="font">
|
||||||
|
<font>
|
||||||
|
<pointsize>12</pointsize>
|
||||||
|
</font>
|
||||||
|
</property>
|
||||||
|
<property name="minimum">
|
||||||
|
<number>1</number>
|
||||||
|
</property>
|
||||||
|
<property name="maximum">
|
||||||
|
<number>1000000</number>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QPlainTextEdit" name="plainTextEdit_file_path_input_signal_BCG">
|
||||||
|
<property name="plainText">
|
||||||
|
<string/>
|
||||||
|
</property>
|
||||||
|
<property name="placeholderText">
|
||||||
|
<string>文件路径</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QGroupBox" name="groupBox_file_path_input_artifact">
|
||||||
|
<property name="title">
|
||||||
|
<string>体动Artifact_a路径</string>
|
||||||
|
</property>
|
||||||
|
<layout class="QVBoxLayout" name="verticalLayout_6" stretch="2">
|
||||||
|
<item>
|
||||||
|
<widget class="QPlainTextEdit" name="plainTextEdit_file_path_input_artifact">
|
||||||
|
<property name="plainText">
|
||||||
|
<string/>
|
||||||
|
</property>
|
||||||
|
<property name="placeholderText">
|
||||||
|
<string>文件路径</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QGroupBox" name="groupBox_file_path_save">
|
||||||
|
<property name="title">
|
||||||
|
<string>BCG质量标签保存路径</string>
|
||||||
|
</property>
|
||||||
|
<layout class="QVBoxLayout" name="verticalLayout_4">
|
||||||
|
<item>
|
||||||
|
<widget class="QPlainTextEdit" name="plainTextEdit_file_path_save">
|
||||||
|
<property name="placeholderText">
|
||||||
|
<string>保存路径</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QGroupBox" name="groupBox_display_mode">
|
||||||
|
<property name="title">
|
||||||
|
<string>显示模式</string>
|
||||||
|
</property>
|
||||||
|
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||||
|
<item>
|
||||||
|
<spacer name="horizontalSpacer">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Orientation::Horizontal</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeHint" stdset="0">
|
||||||
|
<size>
|
||||||
|
<width>40</width>
|
||||||
|
<height>20</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</spacer>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QRadioButton" name="radioButton_30s_mode">
|
||||||
|
<property name="font">
|
||||||
|
<font>
|
||||||
|
<pointsize>12</pointsize>
|
||||||
|
</font>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>30s模式</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<spacer name="horizontalSpacer_3">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Orientation::Horizontal</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeHint" stdset="0">
|
||||||
|
<size>
|
||||||
|
<width>40</width>
|
||||||
|
<height>20</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</spacer>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QRadioButton" name="radioButton_10s_mode">
|
||||||
|
<property name="font">
|
||||||
|
<font>
|
||||||
|
<pointsize>12</pointsize>
|
||||||
|
</font>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>10s模式</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<spacer name="horizontalSpacer_2">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Orientation::Horizontal</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeHint" stdset="0">
|
||||||
|
<size>
|
||||||
|
<width>40</width>
|
||||||
|
<height>20</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</spacer>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="2">
|
||||||
|
<widget class="QPushButton" name="pushButton_confirm">
|
||||||
|
<property name="font">
|
||||||
|
<font>
|
||||||
|
<pointsize>12</pointsize>
|
||||||
|
</font>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>确定</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
<widget class="QStatusBar" name="statusbar"/>
|
||||||
|
</widget>
|
||||||
|
<resources/>
|
||||||
|
<connections/>
|
||||||
|
</ui>
|
||||||
Reference in New Issue
Block a user