from PyQt5.QtCore import QObject, pyqtSignal from rscder.utils.project import PairLayer class BasicPlugin(QObject): ''' 插件基类 ctx: layer_tree: layer tree pair_canvas: pair canvas message_box: message box result_table: result table project: project instance mainwindow: mainwindow toolbar: toolbar statusbar: statusbar menu: menu file_menu: file menu ''' def __init__(self, ctx:dict) -> None: super().__init__() self.ctx = ctx self.layer_tree = ctx['layer_tree'] self.pair_canvas = ctx['pair_canvas'] self.message_box = ctx['message_box'] self.result_table = ctx['result_table'] self.project = ctx['project'] self.mainwindow = ctx['mainwindow'] self.set_action() self.project.layer_load.connect(self.on_data_load) self.project.project_created.connect(self.setup) def set_action(self): ''' When App start ''' pass def setup(self): ''' When project create ''' pass def get_layer(self, layer_id)-> PairLayer: return self.project.layers[layer_id] def on_data_load(self, layer_id): ''' When data load ''' pass