def sync_actions(self, actions: List[ActionModel]): data = [] for i, v in enumerate(actions): v: ActionModel data.append([i, v.name, v.ALL_TYPES_REV.get(v.type), v.dest_scene, v.params]) TableHelper.sync_data(self.tableWidgetActions, data) TableHelper.auto_inject_columns_width(self.tableWidgetActions)
def _callback_scene_tab_changed(self, current: int, previous: int) -> bool: current_table = self.current_table_widget if current_table is not None: TableHelper.auto_inject_columns_width(current_table) current_table.setCurrentCell(-1, -1) return True
def sync_objects(self, objects: List[ObjectModel]): data = [] for i, v in enumerate(objects): v: ObjectModel data.append([i, v.name, v.rect, v.ALL_TYPES_REV.get(v.type), len(v.actions), v.params]) TableHelper.sync_data(self.tableWidgetObjects, data) TableHelper.auto_inject_columns_width(self.tableWidgetObjects) self.sync_scenes()
def sync_features(self, features: List[FeatureModel]): data = [] for i, v in enumerate(features): v: FeatureModel data.append([i, v.name, v.ALL_MODES_REV.get(v.mode), v.rect, v.detect_weight]) TableHelper.sync_data(self.tableWidgetFeatures, data) TableHelper.auto_inject_columns_width(self.tableWidgetFeatures) self.sync_scenes()
def sync_scenes(self): if self._device is not None: scenes = self._project.scenes data = [] for k, v in scenes.items(): v: SceneModel data.append([k, len(v.accuracy)]) TableHelper.sync_data(self.tableWidgetScenes, data) TableHelper.auto_inject_columns_width(self.tableWidgetScenes)
def sync_scenes(self): if self._project is None: return scenes = self._project.scenes data = [] for k, v in scenes.items(): v: SceneModel data.append([k, len(v.features), len(v.objects)]) TableHelper.sync_data(self.tableWidgetScenes, data) TableHelper.auto_inject_columns_width(self.tableWidgetScenes)
def refresh_scenes(self, data): mi = -1 mv = 0 for i, (k, v) in enumerate(data): if v > mv: mi, mv = i, v data[i] = [k, '%.6f' % v] TableHelper.sync_data(self.tableWidgetScenes, data) TableHelper.auto_inject_columns_width(self.tableWidgetScenes) self.tableWidgetScenes.selectRow(mi) self.app.processEvents()
def callback_event_register(self): self.actionCaptureScene.triggered.connect( self._callback_capture_scene_triggered) self.actionOpen.triggered.connect(self._callback_open_triggered) self.actionSave.triggered.connect(self._callback_save_triggered) self.actionSelectDevice.triggered.connect( self._callback_select_device_triggered) self.actionRenameScene.triggered.connect( self._callback_rename_scene_triggered) self.actionRemoveScene.triggered.connect( self._callback_remove_scene_triggered) self.actionEditItem.triggered.connect( lambda: self._callback_edit_item_triggered(self.current_item_index )) self.actionDeleteItem.triggered.connect( lambda: self._callback_delete_item_triggered(self. current_item_index)) self.actionSetItemParams.triggered.connect( self._callback_set_item_params_triggered) self.actionExportData.triggered.connect( self._callback_export_data_triggered) self.horizontalSliderScale.valueChanged.connect( self._callback_scale_changed) self.tabWidgetScene.currentChanged.connect( self.__callback_scene_tab_changed) self.tableWidgetScenes.currentItemChanged.connect( TableHelper.generate_current_item_changed_callback( self.tableWidgetScenes, self._callback_scene_changed, 0)) self.tableWidgetFeatures.currentItemChanged.connect( TableHelper.generate_current_item_changed_callback( self.tableWidgetFeatures, self._callback_feature_changed)) self.tableWidgetObjects.currentItemChanged.connect( TableHelper.generate_current_item_changed_callback( self.tableWidgetObjects, self._callback_object_changed)) self.tableWidgetActions.currentItemChanged.connect( TableHelper.generate_current_item_changed_callback( self.tableWidgetActions, self._callback_action_changed)) self.tableWidgetFeatures.itemDoubleClicked.connect( lambda x: self._callback_edit_item_triggered(x.row())) self.tableWidgetObjects.itemDoubleClicked.connect( lambda x: self._callback_edit_item_triggered(x.row())) self.tableWidgetActions.itemDoubleClicked.connect( lambda x: self._callback_edit_item_triggered(x.row())) self.tableWidgetScenes.itemDoubleClicked.connect( lambda _: self._callback_rename_scene_triggered(True))
def resizeEvent(self, *args): super().resizeEvent(*args) current_table = self.current_table_widget if current_table is not None: TableHelper.auto_inject_columns_width(current_table)
def showEvent(self, *args): super().showEvent(*args) TableHelper.auto_inject_columns_width(self.tableWidgetScenes)