[Interest] QObject.destroyed() not working?!

Alexandru Croitor alexandru.croitor at qt.io
Mon Mar 27 10:59:44 CEST 2017


Hi,

I'm going to assume this is with PyQt.

Aside from what Thiago already mentioned, you could try to connect a method declared outside of the class scope.
So something like:

def myDestructor(obj):
  pass

class MyClass(object):
  def __init__(self):
  self.destroyed.connect(myDestructor)

Also do take into account that a Python object's destructor aka __del__ method might not be executed if the object is part of a cycle, due to the garbage collector not knowing the order in which destructors should be called.
I believe starting with Python 3.4, finalizers are always called.


> On 27 Mar 2017, at 03:52, Frank Rueter | OHUfx <frank at ohufx.com> wrote:
> 
> Hi,
> 
> I'm pretty sure I'm misinterpreting how this should work so maybe you guys can help:
> 
> I have a QObject which I would like to run a simple clean up job just before it's destroyed.
> I thought I could simply do this in it's constructor:
>    self.destroyed.connect(self.__cleanUp)
> 
> Then have self.__cleanUp() to the work.
> However, a simple print statement inside self.__cleanUp() shows that it's never run.
> 
> What am I missing?
> 
> Thanks,
> frank
> 
> _______________________________________________
> Interest mailing list
> Interest at qt-project.org
> http://lists.qt-project.org/mailman/listinfo/interest




More information about the Interest mailing list