KikkaCore.py 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. import os
  2. import sys
  3. import json
  4. from PySide6.QtWidgets import QApplication
  5. import Kikka
  6. from Kikka.KikkaConst import *
  7. from Kikka.Utils.Singleton import singleton
  8. from Kikka.KikkaMemory import KikkaMemory
  9. from Kikka.KikkaConfig import KikkaConfig
  10. from Kikka.KikkaStyle import KikkaStyle
  11. from Kikka.Widgets.MainWindow import MainWindow
  12. from Kikka.KikkaAction import KikkaAction
  13. from Kikka.Widgets.Shell.KikkaShell import KikkaShell
  14. @singleton
  15. class KikkaCore():
  16. def __init__(self):
  17. self._memory = KikkaMemory()
  18. self._config = KikkaConfig()
  19. self._style = KikkaStyle()
  20. self._action = KikkaAction()
  21. self._app = None
  22. self._mainWindow = None
  23. self._shell = None
  24. # region property
  25. @property
  26. def memory(self):
  27. return self._memory
  28. @property
  29. def config(self):
  30. return self._config
  31. @property
  32. def style(self):
  33. return self._style
  34. @property
  35. def app(self):
  36. return self._app
  37. @property
  38. def action(self):
  39. return self._action
  40. @property
  41. def mainWindow(self):
  42. return self._mainWindow
  43. @property
  44. def shell(self):
  45. return self._shell
  46. # endregion
  47. # region init
  48. def init(self):
  49. self.memory.awake()
  50. self.action.load()
  51. self._app = QApplication(sys.argv)
  52. Kikka.app = self.app
  53. self.style.switchTheme(DEFAULT_THEME)
  54. self._mainWindow = MainWindow()
  55. Kikka.mainWindow = self.mainWindow
  56. self.mainWindow.initData(self.action.data)
  57. self.mainWindow.setPage(0, 0)
  58. self._shell = KikkaShell()
  59. self.shell.loadShell({"shell_type": "Image"})
  60. Kikka.shell = self.shell
  61. self.connect_slot()
  62. def connect_slot(self):
  63. self.mainWindow.SIGNAL_OPERATION.connect(KikkaAction().actionOperation)
  64. self.mainWindow.SIGNAL_OPERATION.connect(self.onMainWindowOperation)
  65. def initialized(self):
  66. self.mainWindow.show()
  67. self.shell.show()
  68. # endregion
  69. def onMainWindowOperation(self, operation, param):
  70. pass