<div dir="ltr"><div><div><div><div><div><div><div><div><div><div>Per the Qt docs [1], aboutToQuit is a signal emitted by QCoreApplication.<br><br></div>However when I attempt this in a QWidget-based class,<br><br></div><div><span style="font-family:monospace,monospace">    class Mine( QWidget ) :<br></span></div><span style="font-family:monospace,monospace">        def __init__( self, parent ) :<br></span></div><span style="font-family:monospace,monospace">            super().__init__( Parent )<br></span></div><span style="font-family:monospace,monospace">            QCoreApplication.aboutToQuit.connect( self.quittin )<br></span><br></div>this produces an error, 'PyQt5.QtCore.pyqtSignal' object has no attribute 'connect' -- which tells me that QCoreApplication is not a signal but a PyQt signal factory (?) so, following the directions in [2]:<br><br></div><span style="font-family:monospace,monospace">    class Mine( QWidget ) :<br></span></div><span style="font-family:monospace,monospace">        about_to_quit = QCoreApplication.aboutToQuit()<br>        def __init__( self, parent ) :<br>            super().__init__( Parent )<br></span></div><span style="font-family:monospace,monospace">            about_to_quit.connect( self.quittin )<br></span><br></div>Nope, that gets the error "native Qt signal is not callable" -- so it isn't a pyqtSignal after all, it's a real signal.<br><br></div><div>So then accidentally I entered this:<br><br><span style="font-family:monospace,monospace">    class Mine( QWidget ) :<br>        about_to_quit = QCoreApplication.aboutToQuit # <-- no parens!<br>        def __init__( self, parent ) :<br>            super().__init__( Parent )<br>            about_to_quit.connect( self.quittin )<br></span><br></div><div>That executes without error! (So when it is assigned to a class variable, QCoreApplication.aboutToQuit somehow acquires a .connect attribute?)<br><br>But however alas -- no signal is delivered, or at any rate self.quittin() is never entered.<br><br>So I could use some enlightenment here...<br><br><br>[1] <a href="http://doc.qt.io/qt-5/qcoreapplication.html#aboutToQuit">http://doc.qt.io/qt-5/qcoreapplication.html#aboutToQuit</a><br><br>[2] <a href="http://pyqt.sourceforge.net/Docs/PyQt5/signals_slots.html#defining-new-signals-with-pyqtsignal">http://pyqt.sourceforge.net/Docs/PyQt5/signals_slots.html#defining-new-signals-with-pyqtsignal</a><br></div></div>