James Henstridge wrote:
> 
> That sounds like a bit of a problem.  I made it so that attributes
> starting with an underscore would not be shared between instance objects,
> but it doesn't quite work right in that snapshot.  To fix it, edit gtk.py,
> find the __setattr__ method, and at the end of the first if block, add a
> return statement to the end.
> 
> I am not sure how to handle this problem.  Does anyone have any ideas?
> 
> James Henstridge.

What do you think about about doing a global replace of _o and _ag with
__o and __ag?  That allows '_' attributes to be shared, while '__'
attributes are not.

Alternatively, you could check specifically for '_o', '_ag', '__win',
etc... in setattr.

BTW, this change also caused my current code to crash.  In a few places
where I subclass a Gtk*, I set some attributes before calling the
__init__ method of the parent class.  See below:

from gtk import *
from GDK import *

class MyLabelWorks(GtkLabel):
    def __init__(self,label="Hello World!"):
        GtkLabel.__init__(self,label)
        self.label=label

class MyLabelFails(GtkLabel):
    def __init__(self,label="Hello World!"):
        self.label=label
        GtkLabel.__init__(self,label)

l=MyLabelWorks()
l=MyLabelFails()

I have a patch that allows the MyLabelFails behavior, if you are
interested.  Obviously, any attributes set before the __init__ is called
will not be available to signal handlers...but I think that is better
than the error message I get in the "Fails" case above! ;)

I'm not sure if this is related to the problem Markus is seeing or
not....

> > One problem with the new approach is that I no longer can add instance
> > variables when deriving from classes like GtkDialog.
> >
> > -----   Markus Oberhumer <[EMAIL PROTECTED]>   -----

-- 
Richard Fish                      Enhanced Software Technologies, Inc.
Software Developer                4014 E Broadway Rd Suite 405
[EMAIL PROTECTED]                    Phoenix, AZ  85040 
(602) 470-1115                    http://www.estinc.com
To unsubscribe: echo "unsubscribe" | mail [EMAIL PROTECTED]

Reply via email to