44 lines
1.6 KiB
Python
44 lines
1.6 KiB
Python
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() |