[wxPython-users] Referencing frame widgets in another class

Werner F. Bruhin werner.bruhin at free.fr
Thu Aug 3 11:04:39 PDT 2006


Hi John,

John Salerno wrote:

> Hi everyone. I tried posting this question to the gmane newsgroup, but
> it's been a while and I don't see it, so it might not be working for
> me. I apologize if it appears twice.
>
> My question was about referencing the widgets of my frame from within
> a separate class, specifically a validator class. I've tried passing
> the frame as an argument to the validator's __init__ method, but I get
> an error saying there are too many arguments.
>
> I know this is a very newbie OO question, but I just can't figure it
> out! I'm trying to make some kind of reference like this in my
> validator class:
>
> frame.widget.method() = some_value
>
> but so far I can't figure out how to get a reference to the frame.

I use validators to make controls data aware and for this I need to pass 
some things to it, which I do like this:

        self.remarks.SetValidator(validators.valTC(dbParent = self,
                                                   dbItemName = 
'dbItemImage',
                                                   dbCol = 'remarks'))

And this is part of the valTC validator:

class valTC(wx.PyValidator):
    """ Validator for standard TextCtrl to get/write data from an ORM
    datasource to/from the Window.
    """
    def __init__(self, dbParent, dbItemName = '', dbCol=None):
        """dbParent = has to have a dbItem attribute which is a
        ORM select item (a class in beans.py)
        dbItemName is an optional string with an alternative dbItem
        dbCol = database column name
        """
        wx.PyValidator.__init__(self)

        self.dbParent = dbParent
        self.dbItemName = dbItemName
        self.dbCol = dbCol

    def Clone(self):
        """Clone function, as the name implies creates a clone of this
        validator for each instance, make sure to pass the appropriate
        parameters.
        """
        return valTC(self.dbParent, self.dbItemName, self.dbCol)

Werner




More information about the wxpython-users mailing list