2025-12-05 09:44:00 +02:00
|
|
|
"""
|
|
|
|
|
Microscopy Object Detection Application
|
|
|
|
|
Main entry point for the application.
|
|
|
|
|
"""
|
|
|
|
|
|
|
|
|
|
import sys
|
|
|
|
|
from pathlib import Path
|
|
|
|
|
|
2025-12-05 15:51:16 +02:00
|
|
|
# Add src directory to path for development mode
|
2025-12-05 09:44:00 +02:00
|
|
|
sys.path.insert(0, str(Path(__file__).parent))
|
|
|
|
|
|
|
|
|
|
from PySide6.QtWidgets import QApplication
|
|
|
|
|
from PySide6.QtCore import Qt
|
|
|
|
|
|
2025-12-05 15:51:16 +02:00
|
|
|
from src import __version__
|
2025-12-05 09:44:00 +02:00
|
|
|
from src.gui.main_window import MainWindow
|
|
|
|
|
from src.utils.logger import setup_logging
|
|
|
|
|
from src.utils.config_manager import ConfigManager
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def main():
|
|
|
|
|
"""Application entry point."""
|
|
|
|
|
# Setup logging
|
|
|
|
|
config_manager = ConfigManager()
|
|
|
|
|
log_config = config_manager.get_section("logging")
|
|
|
|
|
setup_logging(
|
|
|
|
|
log_file=log_config.get("file", "logs/app.log"),
|
|
|
|
|
level=log_config.get("level", "INFO"),
|
|
|
|
|
log_format=log_config.get("format"),
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
# Enable High DPI scaling
|
|
|
|
|
QApplication.setHighDpiScaleFactorRoundingPolicy(
|
|
|
|
|
Qt.HighDpiScaleFactorRoundingPolicy.PassThrough
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
# Create Qt application
|
|
|
|
|
app = QApplication(sys.argv)
|
|
|
|
|
app.setApplicationName("Microscopy Object Detection")
|
|
|
|
|
app.setOrganizationName("MicroscopyLab")
|
2025-12-05 15:51:16 +02:00
|
|
|
app.setApplicationVersion(__version__)
|
2025-12-05 09:44:00 +02:00
|
|
|
|
|
|
|
|
# Set application style
|
|
|
|
|
app.setStyle("Fusion")
|
|
|
|
|
|
|
|
|
|
# Create and show main window
|
|
|
|
|
window = MainWindow()
|
|
|
|
|
window.show()
|
|
|
|
|
|
|
|
|
|
# Run application
|
|
|
|
|
sys.exit(app.exec())
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if __name__ == "__main__":
|
|
|
|
|
main()
|