Sto realizzando un software che serve a visualizzare il contenuto di file GCODE, in pratica sono una serie di istruzioni per una macchina a controllo numerico che definiscono il movimento dell'utensile. Il software visualizza il percorso che definisce la lavorazione.
Premetto che funziona tutto, ma verrei aggiungere una funzionalità.
Attualmente l'immagine generata viene visualizzata su una QGraphicsScene e ridimensionata per essere mostrata il più grande possibile.
Quando si ridimensiona la finestra, si ridimensiona anche l'area della scena, vorrei che di conseguenza si ridimensionasse anche il disegno visualizzato.
Farlo non sarebbe un problema, mi basta ricalcolare il fattore di scala e rigenerare il disegno.
Il problema è che se si ridimensiona la finestra tarascinando l'angolo in basso a destra, sarebbe un continuo ridimensionamento del disegno. Ho intenzione invece di attivare il ridimensionamento solo dopo x secondi che non c'è più un cambio di dimensione della finestra principale.
Per farlo avrei intenzione di usare un timer avviato in un thread appena la finestra viene ridimensionata, se la finestra cambia ancora dimensioni prima dello scadere degli x secondi, il timer va resettato, se invece scadono gli x secondi, deve essere chiamato il metodo draw() che rigenera il disegno.
Nel codice che ho scritto è quasi tutto impostato, c'è anche una classe per gestire il timer, mi mancano le conoscenze per dichiarare il timer nella classe MainWindow, che è quella che gestisce tutto, e nella classe del timer poter chiamare il metodo draw() di MainWindow per rigenerare il disegno.
Sapreste aiutarmi?
Qui sotto il link al codice del software in questione.
C'è anche un esempio di file GCODE per fare prove, è il file .PGR
https://github.com/LuigiCaradonna/isoviewer