1.5 KiB
1.5 KiB
main.py
Scopo
main.py è il punto di ingresso dell'applicazione desktop. Inizializza il loop
asincrono condiviso, crea il client database condiviso e costruisce il launcher
con i pulsanti che aprono i moduli operativi.
Flusso principale
flowchart TD
A["Avvio di main.py"] --> B["Configura policy asyncio su Windows"]
B --> C["Ottiene loop globale con get_global_loop()"]
C --> D["Imposta il loop come default"]
D --> E["Costruisce DSN SQL Server"]
E --> F["Crea AsyncMSSQLClient condiviso"]
F --> G["Istanzia Launcher"]
G --> H["Mostra finestra principale"]
H --> I{"Click su un pulsante"}
I --> J["open_reset_corsie_window()"]
I --> K["open_layout_window()"]
I --> L["open_celle_multiple_window()"]
I --> M["open_search_window()"]
I --> N["open_pickinglist_window()"]
Schema di chiamata
flowchart LR
Launcher["Launcher.__init__"] --> Reset["open_reset_corsie_window"]
Launcher --> Layout["open_layout_window"]
Launcher --> Ghost["open_celle_multiple_window"]
Launcher --> Search["open_search_window"]
Launcher --> Pick["open_pickinglist_window"]
Pick --> PickFactory["create_pickinglist_frame"]
Note
db_appviene creato una sola volta e poi passato a tutte le finestre.- Alla chiusura del launcher viene chiamato
db_app.dispose()sul loop globale. open_pickinglist_window()costruisce la finestra in modo nascosto e la rende visibile solo a layout pronto, per ridurre lo sfarfallio iniziale.