import os import sys import json from PySide6.QtWidgets import QApplication import Kikka from Kikka.KikkaConst import * from Kikka.Utils.Singleton import singleton from Kikka.KikkaMemory import KikkaMemory from Kikka.KikkaConfig import KikkaConfig from Kikka.KikkaStyle import KikkaStyle from Kikka.Widgets.MainWindow import MainWindow from Kikka.KikkaAction import KikkaAction from Kikka.Widgets.Shell.KikkaShell import KikkaShell @singleton class KikkaCore(): def __init__(self): self._memory = KikkaMemory() self._config = KikkaConfig() self._style = KikkaStyle() self._action = KikkaAction() self._app = None self._mainWindow = None self._shell = None # region property @property def memory(self): return self._memory @property def config(self): return self._config @property def style(self): return self._style @property def app(self): return self._app @property def action(self): return self._action @property def mainWindow(self): return self._mainWindow @property def shell(self): return self._shell # endregion # region init def init(self): self.memory.awake() self.action.load() self._app = QApplication(sys.argv) Kikka.app = self.app self.style.switchTheme(DEFAULT_THEME) self._mainWindow = MainWindow() Kikka.mainWindow = self.mainWindow self.mainWindow.initData(self.action.data) self.mainWindow.setPage(0, 0) self._shell = KikkaShell() self.shell.loadShell({"shell_type": "Image"}) Kikka.shell = self.shell self.connect_slot() def connect_slot(self): self.mainWindow.SIGNAL_OPERATION.connect(KikkaAction().actionOperation) self.mainWindow.SIGNAL_OPERATION.connect(self.onMainWindowOperation) def initialized(self): self.mainWindow.show() self.shell.show() # endregion def onMainWindowOperation(self, operation, param): pass