[PyQt] Discard events

Albert Cervera i Areny albert at nan-tic.com
Mon Feb 9 15:01:14 GMT 2009

A Dilluns 09 Febrer 2009, Frédéric va escriure:
> Is there a way to discard all pending events? In a menu callback, I run
> the following code:
>         self.setStatusbarMessage("Goto home position...")
>         self._model.hardware.gotoPosition(0., 0., wait=False)
>         while self._model.hardware.isAxisMoving():
> QtGui.QApplication.processEvents(QtCore.QEventLoop.ExcludeUserInputEvents)
>         self.setStatusbarMessage("Home position reached", 10)
> I periodically call the processEvents, because I want the current
> position to be refreshed (from a thread). During the move, I don't want
> any widgets to be active. This work fine, but all input events are
> queued, and executed as soon as we leave the callback. If the user
> clicks on different widgets, all actions will be executed :o(

Usage of processEvents() usually means you're doing something wrong. If you 
don't want any widget to obey user input you should possibly disable all of 
them (by putting them in a list of widgets to be enabled/disabled, for 

> --
>    Frédéric
> _______________________________________________
> PyQt mailing list    PyQt at riverbankcomputing.com
> http://www.riverbankcomputing.com/mailman/listinfo/pyqt

Albert Cervera i Areny

More information about the PyQt mailing list