>On Fri, 2002-11-08 at 01:50, Kaleb Pederson wrote: >> I'm using a global QSettings object throughout my application. For some >> reason, when the program closes, the destructor on my QSettings object is >not > getting called. As it is the destructor that actually writes everything >to >> disk (in order to cache the data), none of my settings are getting saved. >Can >> I manually call it? I'm pretty sure that this used to work on previous >> PyQt/Qt versions.
> > The reason you're having problems is most likely because there is no > such thing as a destructor in Python. I assume that you, like many > before you, are treating the __del__() method as a destructor but the > reality is there is no guarantee that __del__() will be called on > program exit. The Python Language Reference recommends that you only use > __del__() methods to "do the absolute minimum needed to maintain > external invariants". See > http://www.python.org/doc/current/ref/customization.html for more > information. That was not one of my assumptions in this case. I'm using a module level global that contains a reference to my wrapped QSettings class wherein a member variable is assigned the QSettings object. My only assumption was that once the reference count hit zero, that PyQt would call the destructor of the C++ object to avoid any memory leaks. I never explicitly call delete on the object; instead, I simply let it go out of scope at application close. Thanks for the link though. As Python has a GC, writing the __del__ call has never been a priority to me. In fact, I never considered it the destructor of an object but merely a suggestion to the GC. --Kaleb _______________________________________________ PyKDE mailing list [EMAIL PROTECTED] http://mats.gmd.de/mailman/listinfo/pykde
