[PyQt] SEGV on exit but only with ALT-F4

Barry Scott barry at barrys-emacs.org
Sun Mar 20 16:20:30 GMT 2016


I have been reading about the issue of atexit handlers deleting Qt objects in 
a random order, causing SEGV.

I use this pattern to start up my application:

def main( argv ):
    app = wb_git_app.WbGit_App( argv )
    app.main_window.show()
    rc = app.exec_()
    # force clean up of objects to avoid segv on exit
    del app
    return rc

if __name__ == '__main__':
    sys.exit( main( sys.argv ) )

All the PyQt work in in WbGit_App object and its children.

All is well if I exit from an menu action or clicking the [X] on the window 
decoration to exit. But type Alt-F4 and I get a SEGV.

I have two questions:

1) How can I track down the orphaned Qt objects to try and delete them
in predicable order?

2) What is different about Alt-F4 method of quitting? (Maybe I can figure
why it crashes from that difference)

Barry



More information about the PyQt mailing list