Ah yes, good point. That sounds much cleaner, thanks!

Cheers,
frank

On 22/07/18 2:59 AM, David Anes wrote:
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 <[email protected] <mailto:[email protected]>>:

    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
    [email protected] <mailto:[email protected]>
    http://lists.qt-project.org/mailman/listinfo/pyside
    <http://lists.qt-project.org/mailman/listinfo/pyside>




--
David "kraptor" Anes Alcolea
* @kraptor <http://twitter.com/kraptor>
* linkedin.com/in/davidanes <http://linkedin.com/in/davidanes>

_______________________________________________
PySide mailing list
[email protected]
http://lists.qt-project.org/mailman/listinfo/pyside

Reply via email to