[PyQt] A Qt error pushed me out of Python

Giovanni Bajo rasky at develer.com
Fri Apr 13 20:36:40 BST 2007


On 13/04/2007 19.45, Matt Newell wrote:
> On Friday 13 April 2007 09:43, Gerard Vermeulen wrote:
>> If you are using a version of PyQt before 4.2, you cannot really use
>> PyQt widgets like this because they do not respond to events, since
>> their is no event loop (you did not call yourQApplication._exec()).
>> PyQwt has a module 'iqt' that fakes an event loop in combination with
>> the readline module, see
>> http://pyqwt.sourceforge.net/doc5/iqt-intro.html
>>
>> I think that PyQt-4.2 has also half the facility of faking the event
>> loop: you still have to use the readline module (this is what I think,
>> I did not test it) to make sure that events are handled.
>>
>> Anyhow, if you want to use PyQt from the interpreter, I recommend
>> the use of a Python startup file as explained in iqt-intro.html.
> 
> You don't need to call QApplication::exec to have an event loop.  A local 
> event loop is created automatically whenever you call QMenu::exec, 
> QDialog::exec or one of the static QMessageBox methods.  You still need a 
> QApplication of course.

Yes, but the point is that, since PyQt 4.2, the event loop is always running 
in *background* at the interpreter prompt. So you can construct a complex 
widget, show() it and interact with it without ever calling exec() explicitly. 
  It's much handier for quick sessions.

This new feature didn't make it to the NEWS file though. I guess Phil didn't 
think it was important enough.
-- 
Giovanni Bajo



More information about the PyQt mailing list