<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Tue, Mar 22, 2016 at 11:14 PM, Phil Thompson <span dir="ltr"><<a href="mailto:phil@riverbankcomputing.com" target="_blank">phil@riverbankcomputing.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><span class="">On 22/03/2016 5:20 pm, Dave Gradwell wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
Many thanks for the input on this one.<br>
I now see that PyQt is conformant with Qt’s design.<br>
Maybe I can use a custom sys.excepthook (and Barry thanks for the<br>
links to wb_logging.py).<br>
</blockquote>
<br></span>
I don't mind installing one automatically in the QApplication ctor (but only if one hadn't already been installed). It would just display the traceback in a dialog and then exit.<span class=""><font color="#888888"><br>
<br>
Phil</font></span><div class=""><div class="h5"></div></div></blockquote><div><br><br></div><div>I'm a little shy to jump in here, because I suspect others know far more about this topic than me. <br><br>In my code at least, sometimes when there's an uncaught exception, there can be a deluge of them (e.g. exceptions related to a QListView / Model / Delegate etc.) If you don't want the application to automatically exit after the user closes the message box then stopping the display of message box too many times is critical. For now at least I handle that rather crudely by only showing an error message via a QMessageBox if it's not been shown before, which is determined by checking the module and line number of the exception.<br><br></div><div>If a user is going to take the time to file a bug report, I'd like to make it as easy as possible as possible for them. Therefore I think it's nice to show the user in the error message box where on the file system the log files are located, by providing a URI that when clicked starts the default file browser at that location. (In the case of my application, the application generates detailed log files from all processes, with log messages from child processes to the parent process being passed via 0MQ PUB/SUB sockets). <br><br></div><div>Then there is the case of displaying an error message before QApplication starts. Unfortunately i didn't make a note of whose project I got that idea from, but in any case I thought it was a good one.<br></div><div></div><div><br><a href="http://bazaar.launchpad.net/~dlynch3/rapid/zeromq_pyqt/view/head:/raphodo/excepthook.py">http://bazaar.launchpad.net/~dlynch3/rapid/zeromq_pyqt/view/head:/raphodo/excepthook.py</a><br></div></div><a href="http://bazaar.launchpad.net/~dlynch3/rapid/zeromq_pyqt/view/head:/raphodo/iplogging.py">http://bazaar.launchpad.net/~dlynch3/rapid/zeromq_pyqt/view/head:/raphodo/iplogging.py</a><br><a href="http://bazaar.launchpad.net/~dlynch3/rapid/zeromq_pyqt/view/head:/raphodo/interprocess.py#L667">http://bazaar.launchpad.net/~dlynch3/rapid/zeromq_pyqt/view/head:/raphodo/interprocess.py#L667</a><br><br></div><div class="gmail_extra">No doubt there are better approaches than my attempts above but so far at least, it works for me. Any suggested improvements are most welcome.<br><br></div><div class="gmail_extra">Damon<br></div><div class="gmail_extra">-- <br><div class="gmail_signature"><a href="http://www.damonlynch.net" target="_blank">http://www.damonlynch.net</a><div></div><div></div><div></div></div>
</div></div>