Question

J'ai une application graphique complexe écrite en Python et wxPython.

Je souhaite qu'il soit certifié pour Windows Vista. Il doit donc se bloquer, ce qui entraîne l'affichage de la boîte de dialogue Rapport d'erreurs Windows (celle qui demande " Souhaitez-vous envoyer le rapport à Microsoft? ") à paraître. Ceci est pertinent pour le cas de test n ° 32 de " Certifié pour les cas de test Windows Vista ". document.

Malheureusement, lorsque je bloque mon application avec l'outil ThreadHijacker wxPython, un message du type:

Unhandled exception
---------------------------
An unhandled exception occurred. Press "Abort" to terminate the program,
"Retry" to exit the program normally and "Ignore" to try to continue.
---------------------------
Abort   Retry   Ignore

Comment puis-je empêcher wxPython d’afficher ce message? J'ai personnalisé sys.excepthook , mais il semble que cette boîte de dialogue soit affichée avant que mon crochet except puisse interférer.

EDIT:

wxWidgets em> est appelé et sous MSW, il affiche une boîte de dialogue sophistiquée qui permet à l’utilisateur de choisir entre les différentes options. Il semble cependant que wxPython ne permet pas de surcharger cette fonction ... Quelqu'un sait-il comment changer le comportement par défaut de wxAppConsole :: OnExceptionInMainLoop dans wxPython?
Je préfère les solutions au niveau Python à celles qui vont en C / C ++

EDIT2:

Dans l’ensemble, j’ai posé la question à la liste de diffusion wxPython et Robin Dunn a répondu qu’il envisagerait de rendre wxAppConsole :: OnExceptionInMainLoop remplaçable dans les prochaines versions de wxPython. Comme je ne pouvais pas attendre, je devais compiler ma propre version de wxPython qui n'inclut pas cette fonction. Il est apparu que la présence de la fonction wxAppConsole :: OnExceptionInMainLoop peut être activée / désactivée en définissant correctement les indicateurs de compilation.

Était-ce utile?

La solution

Tout a fini par compiler mes propres wxWidgets et wxPython, avec un seul indicateur de compilation modifié: wxUSE_EXCEPTIONS doit être défini sur 0.

Robin Dunn a écrit qu’il essaierait de mettre à jour wxPython, ce comportement pourrait donc être modifié sans recompiler l’ensemble de la bibliothèque.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top