更新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:
|
||||
return QColor(0, 255, 0)
|
||||
# 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)
|
||||
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(255, 165, 0)
|
||||
# 返回灰色
|
||||
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"
|
||||
|
||||
|
||||
# 禁止实例化
|
||||
|
||||
Reference in New Issue
Block a user