Coverage for main/main.py: 0%
21 statements
« prev ^ index » next coverage.py v7.15.0, created at 2026-07-03 15:51 +0000
« prev ^ index » next coverage.py v7.15.0, created at 2026-07-03 15:51 +0000
1"""
2Main entry point for the GliAAns-UI application.
4This module initializes the PyQt6 application, sets up logging, and launches
5the main `Controller`, which manages the GUI workflow.
7It ensures that the environment and resources are correctly configured
8before starting the event loop.
9"""
11import os
12import sys
14from PyQt6.QtCore import Qt
15from PyQt6.QtGui import QIcon, QGuiApplication
16from PyQt6.QtWidgets import QApplication, QStyleFactory
18from controller import Controller
19from logger import setup_logger
20from utils import resource_path, get_shell_path
23if __name__ == "__main__":
24 # Create the main Qt application instance
25 app = QApplication(sys.argv)
27 try:
28 QGuiApplication.styleHints().setColorScheme(Qt.ColorScheme.Light)
29 except AttributeError:
30 # Fallback to a cross-platform style
31 app.setStyle('Fusion')
33 # Set the main window/application icon
34 app.setWindowIcon(QIcon(resource_path(os.path.join("resources", "GliAAns-logo.ico"))))
36 # Initialize and configure the logger
37 # Logs to both console and compressed rotating file by default
38 log = setup_logger(console=True)
39 log.info("Program started")
41 # Extend PATH environment variable to include shell utilities
42 os.environ["PATH"] = get_shell_path()
44 # Create and start the main application controller
45 controller = Controller()
46 controller.start()
48 # Begin Qt event loop (blocking call)
49 sys.exit(app.exec())