1
0

main.py 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. import sys
  2. import os
  3. import asyncio
  4. from pathlib import Path
  5. from PySide6.QtCore import QUrl
  6. from PySide6.QtGui import QGuiApplication
  7. from PySide6.QtQml import QQmlApplicationEngine, qmlRegisterType
  8. from qasync import QEventLoop
  9. from backend import Backend
  10. from models.pattern_model import PatternModel
  11. from models.playlist_model import PlaylistModel
  12. def main():
  13. # Enable virtual keyboard
  14. os.environ['QT_IM_MODULE'] = 'qtvirtualkeyboard'
  15. app = QGuiApplication(sys.argv)
  16. # Setup async event loop
  17. loop = QEventLoop(app)
  18. asyncio.set_event_loop(loop)
  19. # Register types
  20. qmlRegisterType(Backend, "DuneWeaver", 1, 0, "Backend")
  21. qmlRegisterType(PatternModel, "DuneWeaver", 1, 0, "PatternModel")
  22. qmlRegisterType(PlaylistModel, "DuneWeaver", 1, 0, "PlaylistModel")
  23. # Load QML
  24. engine = QQmlApplicationEngine()
  25. qml_file = Path(__file__).parent / "qml" / "main.qml"
  26. engine.load(QUrl.fromLocalFile(str(qml_file)))
  27. if not engine.rootObjects():
  28. return -1
  29. with loop:
  30. loop.run_forever()
  31. return 0
  32. if __name__ == "__main__":
  33. sys.exit(main())