Tkinter: Identifying Button By Row And Column
Solution 1:
You have a few things wrong with your program. First, sunken
should be a method on the class. It's very weird to have it outside the class, and then you pass in self
as some other argument. It works, but it makes the code very confusing.
That being said, you're actually very close to making this work. You're already saving a reference to each button in a list of lists, so you should be able to get the widget with self.__buttons[y][x]
. However, because sunken
is not part of the class, and because you named the variable with two underscores, the variable is not accessible to the sunken
function.
If you change the variable to have a single underscore instead of a double, your code should work more-or-less exactly as it is (once you fix the syntax and indentation errors). The other solution is to make sunken
a method on the class and fix how you call it (remove the self argument, call it as self.sunken
), it will work with two underscores.
Frankly, using two underscores has zero practical benefit. Avoid the temptation to use it. At the very least, don't use it until you have your basic logic working, then you can go back and hide attributes you don't want to be exposed.
Post a Comment for "Tkinter: Identifying Button By Row And Column"