Bonjour,
suite à un problème rencontré je poste ce message.
L'idée est que la fermeture d'une fenêtre peut prendre un certain temps et empêcher la bonne exécution de fonctions qui devraient s'exécuter ensuite (en supposant l'appel d'une fenêtre suivi de l'attente d'une réponse).
Le cas précis dans lequel j'ai rencontré ce problème est le suivant :
lors de l'exécution du programme une nouvelle fenêtre peut être ouverte (par exemple demande de validation d'action). Une fois la réponse de l'utilisateur obtenue (clic sur OK), la fenêtre se ferme et le programme doit envoyer des données via le port série. Problème : pour quelques-unes des premières trames Matlab renvoie un 'Timeout' (normalement Matlab attend une réponse dans les 5s mais ne la voit pas).
Ce problème est éliminé en forçant le raffraîchissement graphique dans la fonction de fermeture ou avant l'envoi de trames ou à tout autre endroit adéquat.
ex dans le callback d'un bouton de validation :
ou dans le programme principal
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 delete(gcbf); drawnow;
Je suppose que cela peut poser problème dans d'autres cas de figure c'est pourquoi je poste ici.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 choice = questdlg('Are you sure you want to delete the profile?', ... 'Delete Profile', 'Yes', 'No', 'No'); drawnow;
Si quelqu'un sait exactement ce que fait Matlab lors de la fermeture d'une fenêtre ou à des remarques à faire sur les problèmes de raffraîchissement graphiques, elles sont les bienvenues.
Partager