Leek/src/leek/leek_app.py
Toast d33d91c0be Leek-app: switch to QApplication
This fixes the near constant console spam
2025-06-04 02:10:20 +02:00

37 lines
1 KiB
Python

#!/usr/bin/env python3
import os
import sys
import signal
from PySide6.QtWidgets import QApplication
from PySide6.QtCore import QUrl
from PySide6.QtQml import QQmlApplicationEngine
from leek.mod_list import QAbstractListModel # noqa: F401, needs to be imported for QML
def main():
"""Initializes and manages the application execution"""
app: QApplication = QApplication(sys.argv)
app.setDesktopFileName("xyz.toast003.leek")
app.setApplicationName("Leek")
engine = QQmlApplicationEngine()
"""Needed to close the app with Ctrl+C"""
signal.signal(signal.SIGINT, signal.SIG_DFL)
"""Needed to get proper KDE style outside of Plasma"""
if not os.environ.get("QT_QUICK_CONTROLS_STYLE"):
os.environ["QT_QUICK_CONTROLS_STYLE"] = "org.kde.desktop"
base_path = os.path.abspath(os.path.dirname(__file__))
url = QUrl(f"file://{base_path}/qml/Main.qml")
engine.load(url)
if len(engine.rootObjects()) == 0:
quit()
app.exec()
if __name__ == "__main__":
main()