82 lines
2.2 KiB
Python
82 lines
2.2 KiB
Python
"""
|
|
Main application entry point for the Cluster4NPU UI application.
|
|
|
|
This module initializes the PyQt5 application, applies the theme, and launches
|
|
the main dashboard window. It serves as the primary entry point for the
|
|
modularized UI application.
|
|
|
|
Main Components:
|
|
- Application initialization and configuration
|
|
- Theme application and font setup
|
|
- Main window instantiation and display
|
|
- Application event loop management
|
|
|
|
Usage:
|
|
python -m cluster4npu_ui.main
|
|
|
|
# Or directly:
|
|
from cluster4npu_ui.main import main
|
|
main()
|
|
"""
|
|
|
|
import sys
|
|
import os
|
|
from PyQt5.QtWidgets import QApplication
|
|
from PyQt5.QtGui import QFont
|
|
from PyQt5.QtCore import Qt
|
|
|
|
# Add the parent directory to the path for imports
|
|
sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
|
|
|
|
from cluster4npu_ui.config.theme import apply_theme
|
|
from cluster4npu_ui.ui.windows.login import DashboardLogin
|
|
|
|
|
|
def setup_application():
|
|
"""Initialize and configure the QApplication."""
|
|
# Enable high DPI support BEFORE creating QApplication
|
|
QApplication.setAttribute(Qt.AA_EnableHighDpiScaling, True)
|
|
QApplication.setAttribute(Qt.AA_UseHighDpiPixmaps, True)
|
|
|
|
# Create QApplication if it doesn't exist
|
|
if not QApplication.instance():
|
|
app = QApplication(sys.argv)
|
|
else:
|
|
app = QApplication.instance()
|
|
|
|
# Set application properties
|
|
app.setApplicationName("Cluster4NPU")
|
|
app.setApplicationVersion("1.0.0")
|
|
app.setOrganizationName("Cluster4NPU Team")
|
|
|
|
# Set application font
|
|
app.setFont(QFont("Arial", 9))
|
|
|
|
# Apply the harmonious theme
|
|
apply_theme(app)
|
|
|
|
return app
|
|
|
|
|
|
def main():
|
|
"""Main application entry point."""
|
|
try:
|
|
# Setup the application
|
|
app = setup_application()
|
|
|
|
# Create and show the main dashboard login window
|
|
dashboard = DashboardLogin()
|
|
dashboard.show()
|
|
|
|
# Start the application event loop
|
|
sys.exit(app.exec_())
|
|
|
|
except Exception as e:
|
|
print(f"Error starting application: {e}")
|
|
import traceback
|
|
traceback.print_exc()
|
|
sys.exit(1)
|
|
|
|
|
|
if __name__ == '__main__':
|
|
main() |