A null program - what is it doing?
davea at ieee.org
Tue Jan 5 13:12:40 CET 2010
> Gib Bogle wrote:
>> No doubt a dumb question from a noob:
>> The following program (a cut down version of some test code) uses no
>> CPU, and does not terminate:
>> import sys
>> from PyQt4.QtCore import *
>> if __name__=="__main__":
>> app = QCoreApplication(sys.argv)
>> What is the program doing? What is the correct way to terminate the
>> Thanks in advance for educating me.
> I've never used QT but other graphical toolkits I have used all start
> their own "main loop" which is a loop that cycles round receiving,
> queuing and dispatching "events". You probably need to call the
> QCoreApplication's quit method to break out of this e.g.
> app.exit() or something similar, have a look at some complete PyQt4
> examples or google for PyQt4 mainloop.
Likewise, I haven't used QT, but have used others.
It looks like app.exec() is the mainloop for QT, and it won't terminate
till it gets a terminate event. That might be the user clicking the X
in the corner, or it might be a special keystroke like Alt-F4. Or it
might be some other event for which your event handler makes an explicit
call to terminate. Once one of these things happens, the app.exec()
will return, and the sys.exit() will execute.
More information about the Python-list