Changing properties of a class instance widget

Mark Light light at soton.ac.uk
Tue Jun 10 08:43:02 EDT 2003


Hi,
     I have a class (after some help from this newsgoup) that generates an
array of buttons that I can select and deselect via left clicks etc(done
using bind). What I would like to be able to do is to have a button that
when clicked will select all in a particular coulmn of buttons. So I need to
be able to referebce the separate instances.

A few snippets of the code!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#Class to generate sample buttons - including sample list population and
data entry
#CCC>
class MyButton(Button):
   ##<
   def __init__(self, parent, buttonNb, **options):
     self.__buttonNb = buttonNb
     apply(Button.__init__, (self, parent), options)
     self.configure( width=10)
     self.bind('<Button-1>', self.onLeftClick)
     self.bind('<Button-2>', self.onMiddleClick)
     self.bind('<Button-3>', self.onRightClick)
     self.bind('<Double-1>', self.onDoubleClick)
   ##>

   #Define middleclick
   ##<
   def onMiddleClick(self, event):
     self.config(None, bg=('green'), relief=SUNKEN)
     print "MiddleClick on Sample" + `self.__buttonNb`
   ##>


#generate buttons from a list (called Layout - e.g. [(frame3b2, 1),
(frame3b2, 2),....])
for frame, sample in Layout:
     b = MyButton(frame, sample, text="Sample %s" % sample)
     b.pack(side=LEFT)


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

How can I refer to a particular instance of MyButton to change it's widget
properties.


Many Thanks,

Mark.








More information about the Python-list mailing list