from rscder.plugins.basic import BasicPlugin from rscder.gui.actions import ActionManager from ai_method import AI_METHOD from PyQt5.QtCore import Qt from PyQt5.QtWidgets import QAction, QToolBar, QMenu, QDialog, QHBoxLayout, QVBoxLayout, QPushButton,QWidget,QLabel,QLineEdit,QPushButton,QComboBox,QDialogButtonBox from rscder.utils.icons import IconInstance from plugins.misc.main import AlgFrontend from functools import partial class AIPlugin(BasicPlugin): @staticmethod def info(): return { 'name': 'AI 变化检测', 'author': 'RSC', 'version': '1.0.0', 'description': 'AI 变化检测', 'category': 'Ai method' } def set_action(self): ai_menu = ActionManager().ai_menu # ai_menu.setIcon(IconInstance().UNSUPERVISED) # ActionManager().change_detection_menu.addMenu(ai_menu) toolbar = ActionManager().add_toolbar('AI method') for key in AI_METHOD.keys(): alg:AlgFrontend = AI_METHOD[key] if alg.get_name() is None: name = key else: name = alg.get_name() action = QAction(alg.get_icon(), name, ai_menu) func = partial(self.run_cd, alg) action.triggered.connect(func) toolbar.addAction(action) ai_menu.addAction(action) def run_cd(self, alg:AlgFrontend): dialog = alg.get_widget(self.mainwindow) dialog.setWindowModality(Qt.NonModal) dialog.show() # dialog.exec()