[Tutor] Functions and random buttons
alan.gauld at freenet.co.uk
Tue Mar 7 10:42:00 CET 2006
> ...I want to make each button clickable
The buttons are clickable so I'm not absolutely sure what you mean?
Do you mean you want to add some action to them when they are clicked?
Thats done with the command option in Tkinter.
define a function and assign it to the button.
In this case it will likely be the same function for all buttons so you
want to do a wee bit of trickery like:
def func(x,y): #x,y the button coords
# do something here
for i in range(length):
for j in range(length):
self.dict['%s%s' % (i, j)] = Button(sel.frame, text = '
command = lambda
That uses the default values of the lambda function to pass the coords
of the button being pressed to your generic function. func can then use
those coords to address the button in the dictionary to update the label
or appearance etc.
One other wee point:
self.dict['%s%s' % (i, j)].grid(row = i, column = j)
You don't need to use a string for a key in a dictionary, the tuple will be
just fine so you can replace the string formatting stuff with:
self.dict[(i, j)].grid(row = i, column = j)
Author of the learn to program web tutor
More information about the Tutor