[PySide] checking for installedent event filters

David Anes david.anes at gmail.com
Sat Jul 21 16:59:39 CEST 2018


Hi Frank,

I would track the window object on my own on every call to the event
filter, and if it's different, then do the removeEventFilter from the old
one, installEvent on the new one and update the tracked object.

Cheers,
David.

2018-07-21 7:09 GMT+02:00 Frank Rueter | OHUfx <frank at ohufx.com>:

> Hi,
>
> I have an interesting scenario where I need to install an event filter on
> the fly from inside another event filter.
>
> This is because the widget I install the first event filter on changes
> it's window() inside the main application under certain circumstances (out
> of my control), and I need to know about the widget.window()'s move event
> in order for the main event filter to work properly.
>
> Anyway, to avoid installing the same filter multiple times I currently do
> this inside the first event filter:
>     def eventFilter(self, obj, event):
>         if event.type() == QtCore.QEvent.UpdateRequest:
>             # obj.window() may or may not have change at this stage
>             obj.window().removeEventFilter(self.window_ef)
>             obj.window().installEventFilter(self.window_ef)
>
> Is there a better way? I.e. is there a way to check which event filters
> are already installed?
>
> Cheers,
> frank
>
> _______________________________________________
> PySide mailing list
> PySide at qt-project.org
> http://lists.qt-project.org/mailman/listinfo/pyside
>



-- 
David "kraptor" Anes Alcolea
* @kraptor <http://twitter.com/kraptor>
* linkedin.com/in/davidanes
<http://simlaps.com>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/pyside/attachments/20180721/e46066c1/attachment.html>


More information about the PySide mailing list