更新SA打标界面快捷键设置,调整按钮文本及增加新按钮功能
This commit is contained in:
@ -394,9 +394,11 @@ class Data:
|
||||
|
||||
start = one_data["correct_Start"] if one_data["isLabeled"] == 1 else one_data["Start"]
|
||||
end = one_data["correct_End"] if one_data["isLabeled"] == 1 else one_data["End"]
|
||||
event_type = one_data["correct_EventsType"] if one_data["isLabeled"] == 1 else one_data[
|
||||
"Event type"]
|
||||
|
||||
self.event_label_revised[start * plot_freq:end * plot_freq] = self.event_type_to_value[
|
||||
one_data["Event type"]]
|
||||
event_type]
|
||||
self.event_index_revised[start:end] = one_data["Index"]
|
||||
|
||||
except Exception as e:
|
||||
@ -527,11 +529,36 @@ class DataFrameModel(QAbstractTableModel):
|
||||
if role == Qt.ForegroundRole:
|
||||
if "isLabeled" in self._dataframe.columns:
|
||||
try:
|
||||
is_labeled_value = pd.to_numeric(self._showdata.iloc[row]["isLabeled"], errors='coerce')
|
||||
print(self._showdata.iloc[row]["Index"])
|
||||
|
||||
event_index = self._showdata.iloc[row]["Index"]
|
||||
is_labeled_value = self._dataframe[self._dataframe["Index"] == event_index]["isLabeled"]
|
||||
if is_labeled_value.empty:
|
||||
return None
|
||||
is_labeled_value = is_labeled_value.values[0]
|
||||
|
||||
if is_labeled_value == 1:
|
||||
# remark 返回蓝色 score 1 返回绿色, 2返回橙色 3返回灰色 -1返回红色
|
||||
# 获取此行的remark
|
||||
remark = not self._dataframe[self._dataframe["Index"] == event_index]["remark"].values[0]
|
||||
score = self._dataframe[self._dataframe["Index"] == event_index]["score"].values[0]
|
||||
if remark == "待讨论":
|
||||
return QColor(0, 0, 255)
|
||||
elif score == 1:
|
||||
return QColor(0, 255, 0)
|
||||
else:
|
||||
elif score == 2:
|
||||
return QColor(255, 165, 0)
|
||||
elif score == 3:
|
||||
return QColor(128, 128, 128)
|
||||
elif score == -1:
|
||||
return QColor(255, 0, 0)
|
||||
else:
|
||||
# 返回黑色
|
||||
return QColor(0, 0, 0)
|
||||
|
||||
else:
|
||||
# 返回灰色
|
||||
return QColor(0, 0, 0)
|
||||
except Exception as e:
|
||||
return None
|
||||
|
||||
@ -628,9 +655,9 @@ class MainWindow_SA_label(QMainWindow):
|
||||
self.display_columns_name_origin = ["事件编号", "事件类型", "起始时间(s)", "终止时间(s)"]
|
||||
self.header_mapping_origin = dict(zip(self.display_columns_origin, self.display_columns_name_origin))
|
||||
|
||||
self.display_columns_revised = ["Index", "isLabeled", "correct_EventsType", "score", "correct_Start",
|
||||
self.display_columns_revised = ["Index", "correct_EventsType", "score", "correct_Start",
|
||||
"correct_End"]
|
||||
self.display_columns_name_revised = ["事件编号", "已标注", "修正事件类型", "标签类型", "起始时间(s)",
|
||||
self.display_columns_name_revised = ["事件编号", "修正事件类型", "标签类型", "起始时间(s)",
|
||||
"终止时间(s)"]
|
||||
self.header_mapping_revised = dict(zip(self.display_columns_revised, self.display_columns_name_revised))
|
||||
|
||||
@ -681,6 +708,8 @@ class MainWindow_SA_label(QMainWindow):
|
||||
self.figToolbar.cid_mouse_press = self.canvas.mpl_connect('button_press_event', self.on_press)
|
||||
self.figToolbar.cid_mouse_release = self.canvas.mpl_connect('button_release_event', self.on_release)
|
||||
self.figToolbar.cid_mouse_move = self.canvas.mpl_connect('motion_notify_event', self.on_motion)
|
||||
self.figToolbar.cid_wheel = self.canvas.mpl_connect('scroll_event', self.__slot_wheel_move__)
|
||||
|
||||
|
||||
self.ui.verticalLayout_canvas.addWidget(self.canvas)
|
||||
self.ui.verticalLayout_canvas.addWidget(self.figToolbar)
|
||||
@ -819,6 +848,20 @@ class MainWindow_SA_label(QMainWindow):
|
||||
QCoreApplication.translate("MainWindow", Params.SA_LABEL_BTN_NEXT_HALF_SHORTCUT_KEY))
|
||||
self.ui.pushButton_best_fit.setShortcut(
|
||||
QCoreApplication.translate("MainWindow", Params.SA_LABEL_BTN_BEST_FIT_SHORTCUT_KEY))
|
||||
self.ui.pushButton_quick_remark_input_littleChange.setShortcut(
|
||||
QCoreApplication.translate("MainWindow", Params. SA_LABEL_BTN_LITTLE_CHANGED_SHORTCUT_KEY)
|
||||
)
|
||||
self.ui.pushButton_quick_remark_input_changeOnMiddle.setShortcut(
|
||||
QCoreApplication.translate("MainWindow", Params. SA_LABEL_BTN_CHANGED_ON_MIDDLE_SHORTCUT_KEY)
|
||||
)
|
||||
self.ui.pushButton_quick_remark_input_noNormalRespBetweenArtifact(
|
||||
).setShortcut(
|
||||
QCoreApplication.translate("MainWindow", Params. SA_LABEL_BTN_BETWEEN_ARTIFACT_SHORTCUT_KEY)
|
||||
)
|
||||
self.ui.pushButton_quick_remark_input_lowSignalNoiseRatio.setShortcut(
|
||||
QCoreApplication.translate("MainWindow", Params. SA_LABEL_BTN_LOW_SNR_SHORTCUT_KEY)
|
||||
)
|
||||
|
||||
|
||||
def load_data_to_table(self):
|
||||
try:
|
||||
@ -830,12 +873,23 @@ class MainWindow_SA_label(QMainWindow):
|
||||
self.header_mapping_revised)
|
||||
self.ui.tableView_label_revised.setModel(self.data_model_revised)
|
||||
|
||||
# 按比例设置列宽
|
||||
self.set_tableview_column_width_by_ratio(self.ui.tableView_label, [1, 3, 3, 3])
|
||||
self.set_tableview_column_width_by_ratio(self.ui.tableView_label_revised, [1, 3, 1, 2, 2])
|
||||
|
||||
except Exception as e:
|
||||
return Result().failure(info=Constants.UPDATE_FAILURE +
|
||||
Constants.FAILURE_REASON["Update_tableWidget_Exception"] + "\n" + format_exc())
|
||||
|
||||
return Result().success(info=Constants.UPDATE_FINISHED)
|
||||
|
||||
def set_tableview_column_width_by_ratio(self, tableview, ratios):
|
||||
"""按比例设置tableView每列宽度"""
|
||||
total_width = tableview.viewport().width()
|
||||
sum_ratio = sum(ratios)
|
||||
for i, ratio in enumerate(ratios):
|
||||
tableview.setColumnWidth(i, int(total_width * ratio / sum_ratio))
|
||||
|
||||
def best_fit(self):
|
||||
plot_freq = self.config["Config"]["InputConfig"]["PlotFreq"]
|
||||
start_point = self.config["WindowStartSecond"] * plot_freq
|
||||
@ -1711,6 +1765,13 @@ class MainWindow_SA_label(QMainWindow):
|
||||
PublicFunc.text_output(self.ui, f"跳转到 {jump_time} 秒", Constants.TIPS_TYPE_INFO)
|
||||
self.__jump_to__by_time__(jump_time)
|
||||
|
||||
def __slot_wheel_move__(self, event):
|
||||
# 向上滚动,时间向前跳30秒,向下滚动,时间向后跳30秒
|
||||
offset = 30 if event.step < 0 else -30
|
||||
PublicFunc.text_output(self.ui, f"滚轮移动 {offset} 秒", Constants.TIPS_TYPE_INFO)
|
||||
self.__jump_to__by_time__(self.config["WindowStartSecond"], offset)
|
||||
|
||||
|
||||
def __slot_btn_quick_remark__(self):
|
||||
sender = self.sender()
|
||||
|
||||
@ -1811,6 +1872,8 @@ class MainWindow_SA_label(QMainWindow):
|
||||
if start + value < 0:
|
||||
return 0, self.config["WindowSignalSecond"]
|
||||
elif start + value + self.config["WindowSignalSecond"] > self.config["SignalSecond"]:
|
||||
PublicFunc.msgbox_output(self, "已到达信号末尾,无法继续前进!", Constants.MSGBOX_TYPE_WARNING)
|
||||
PublicFunc.text_output(self.ui, "已到达信号末尾,无法继续前进!", Constants.TIPS_TYPE_ERROR)
|
||||
return start - self.config["WindowSignalSecond"], self.config["SignalSecond"]
|
||||
else:
|
||||
return start + value, start + value + self.config["WindowSignalSecond"]
|
||||
@ -1889,6 +1952,9 @@ class CustomNavigationToolbar(NavigationToolbar2QT):
|
||||
|
||||
# Connect Pan action to toggle off Edit
|
||||
self._actions['pan'].triggered.connect(self.toggle_pan)
|
||||
self._actions['pan'].setShortcut(
|
||||
QCoreApplication.translate("MainWindow", Params.SA_LABEL_BTN_PAN_MODE_SHORTCUT_KEY))
|
||||
|
||||
|
||||
def drag_pan(self, event):
|
||||
"""Callback for dragging in pan/zoom mode."""
|
||||
|
||||
@ -377,8 +377,9 @@ class Params:
|
||||
SA_LABEL_BTN_NEXT_30s_SHORTCUT_KEY: str = "D"
|
||||
SA_LABEL_BTN_PREV_HALF_SHORTCUT_KEY: str = "F"
|
||||
SA_LABEL_BTN_NEXT_HALF_SHORTCUT_KEY: str = "G"
|
||||
SA_LABEL_BTN_BEST_FIT_SHORTCUT_KEY: str = "X"
|
||||
SA_LABEL_BTN_BEST_FIT_SHORTCUT_KEY: str = "B"
|
||||
SA_LABEL_BTN_EDIT_MODE_SHORTCUT_KEY: str = "Z"
|
||||
SA_LABEL_BTN_PAN_MODE_SHORTCUT_KEY: str = "X"
|
||||
SA_LABEL_BTN_CONFIRMLABEL_SHORTCUT_KEY: str = "S"
|
||||
SA_LABEL_BTN_QUICK_REMARK_WAITINGFORTALK_SHORTCUT_KEY: str = "J"
|
||||
SA_LABEL_RADIOBUTTON_OSA_SHORTCUT_KEY: str = "7"
|
||||
@ -388,6 +389,10 @@ class Params:
|
||||
SA_LABEL_RADIOBUTTON_1_CLASS_SHORTCUT_KEY: str = "1"
|
||||
SA_LABEL_RADIOBUTTON_2_CLASS_SHORTCUT_KEY: str = "2"
|
||||
SA_LABEL_RADIOBUTTON_3_CLASS_SHORTCUT_KEY: str = "3"
|
||||
SA_LABEL_BTN_LITTLE_CHANGED_SHORTCUT_KEY: str = "U"
|
||||
SA_LABEL_BTN_CHANGED_ON_MIDDLE_SHORTCUT_KEY: str = "I"
|
||||
SA_LABEL_BTN_BETWEEN_ARTIFACT_SHORTCUT_KEY: str = "O"
|
||||
SA_LABEL_BTN_LOW_SNR_SHORTCUT_KEY: str = "P"
|
||||
|
||||
|
||||
# 禁止实例化
|
||||
|
||||
@ -653,7 +653,7 @@ class Ui_MainWindow_SA_label(object):
|
||||
self.pushButton_input_setting.setText(QCoreApplication.translate("MainWindow_SA_label", u"\u5bfc\u5165\u8bbe\u7f6e", None))
|
||||
self.pushButton_input.setText(QCoreApplication.translate("MainWindow_SA_label", u"\u5f00\u59cb\u5bfc\u5165", None))
|
||||
self.checkBox_auto_save.setText(QCoreApplication.translate("MainWindow_SA_label", u"\u4fee\u6539\u540e\u81ea\u52a8\u4fdd\u5b58", None))
|
||||
self.pushButton_best_fit.setText(QCoreApplication.translate("MainWindow_SA_label", u"\u81ea\u9002\u5e94\u5e45\u503c\uff08X\uff09", None))
|
||||
self.pushButton_best_fit.setText(QCoreApplication.translate("MainWindow_SA_label", u"\u81ea\u9002\u5e94\u5e45\u503c\uff08B\uff09", None))
|
||||
self.label_4.setText(QCoreApplication.translate("MainWindow_SA_label", u"\u663e\u793a\u7a97\u53e3\u957f\u5ea6/\u79d2\uff1a", None))
|
||||
self.comboBox_window_signal_length.setItemText(0, QCoreApplication.translate("MainWindow_SA_label", u"30", None))
|
||||
self.comboBox_window_signal_length.setItemText(1, QCoreApplication.translate("MainWindow_SA_label", u"60", None))
|
||||
@ -696,12 +696,12 @@ class Ui_MainWindow_SA_label(object):
|
||||
self.label_7.setText(QCoreApplication.translate("MainWindow_SA_label", u"\u5feb\u901f\u5907\u6ce8\u8f93\u5165", None))
|
||||
self.pushButton_quick_remark_input_durationNoEnough.setText(QCoreApplication.translate("MainWindow_SA_label", u"\u4e8c\u7c7b-\u65f6\u957f\u4e0d\u8db3", None))
|
||||
self.pushButton_quick_remark_input_maybeWrongLabeled.setText(QCoreApplication.translate("MainWindow_SA_label", u"\u4e8c\u7c7b-\u7591\u4f3c\u533b\u751f\u8bef\u6807", None))
|
||||
self.pushButton_quick_remark_input_noNormalRespBetweenArtifact.setText(QCoreApplication.translate("MainWindow_SA_label", u"\u4e8c\u7c7b-\u4f53\u52a8\u95f4\u65e0\u6b63\u5e38\u547c\u5438", None))
|
||||
self.pushButton_quick_remark_input_noNormalRespBetweenArtifact.setText(QCoreApplication.translate("MainWindow_SA_label", u"\u4e8c\u7c7b-\u4f53\u52a8\u95f4\u65e0\u6b63\u5e38\u547c\u5438(O)", None))
|
||||
self.pushButton_quick_remark_input_maybeDesaturation.setText(QCoreApplication.translate("MainWindow_SA_label", u"\u4e00\u7c7b-\u5f62\u4f3c\u6f6e\u5f0f\u547c\u5438", None))
|
||||
self.pushButton_quick_remark_input_littleChange.setText(QCoreApplication.translate("MainWindow_SA_label", u"\u4e8c\u7c7b-\u8d77\u4f0f\u53d8\u5316\u4e0d\u5927", None))
|
||||
self.pushButton_quick_remark_input_littleChange.setText(QCoreApplication.translate("MainWindow_SA_label", u"\u4e8c\u7c7b-\u8d77\u4f0f\u53d8\u5316\u4e0d\u5927(U)", None))
|
||||
self.pushButton_quick_remark_input_waitingForTalk.setText(QCoreApplication.translate("MainWindow_SA_label", u"\u5f85\u8ba8\u8bba(N)", None))
|
||||
self.pushButton_quick_remark_input_lowSignalNoiseRatio.setText(QCoreApplication.translate("MainWindow_SA_label", u"\u4e8c\u7c7b-\u4fe1\u566a\u6bd4\u4f4e", None))
|
||||
self.pushButton_quick_remark_input_changeOnMiddle.setText(QCoreApplication.translate("MainWindow_SA_label", u"\u4e8c\u7c7b-\u4e2d\u95f4\u8d77\u4f0f", None))
|
||||
self.pushButton_quick_remark_input_lowSignalNoiseRatio.setText(QCoreApplication.translate("MainWindow_SA_label", u"\u4e8c\u7c7b-\u4fe1\u566a\u6bd4\u4f4e(P)", None))
|
||||
self.pushButton_quick_remark_input_changeOnMiddle.setText(QCoreApplication.translate("MainWindow_SA_label", u"\u4e8c\u7c7b-\u4e2d\u95f4\u8d77\u4f0f(I)", None))
|
||||
self.label_8.setText(QCoreApplication.translate("MainWindow_SA_label", u"\u4fee\u6b63\u540e\u8d77\u59cb\u65f6\u95f4(s)", None))
|
||||
self.label_9.setText(QCoreApplication.translate("MainWindow_SA_label", u"\u4fee\u6b63\u540e\u7ec8\u6b62\u65f6\u95f4(s)", None))
|
||||
self.pushButton_confirmLabel.setText(QCoreApplication.translate("MainWindow_SA_label", u"\u786e\u5b9a\u6253\u6807\u53c2\u6570(S)", None))
|
||||
|
||||
@ -134,7 +134,7 @@
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>自适应幅值(X)</string>
|
||||
<string>自适应幅值(B)</string>
|
||||
</property>
|
||||
<property name="checked">
|
||||
<bool>false</bool>
|
||||
@ -867,7 +867,7 @@
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>二类-体动间无正常呼吸</string>
|
||||
<string>二类-体动间无正常呼吸(O)</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
@ -903,7 +903,7 @@
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>二类-起伏变化不大</string>
|
||||
<string>二类-起伏变化不大(U)</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
@ -939,7 +939,7 @@
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>二类-信噪比低</string>
|
||||
<string>二类-信噪比低(P)</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
@ -957,7 +957,7 @@
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>二类-中间起伏</string>
|
||||
<string>二类-中间起伏(I)</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
|
||||
Reference in New Issue
Block a user