擅长:python、mysql、java
<p>首先,您要创建多个按钮,但是它们被重写地分配给同一个变量<code>gameButton</code>,因此您可以<em>仅</em>引用稍后创建的<em>最后一个</em>按钮,这将是有问题的。在</p>
<p>您可以创建如下按钮:</p>
<pre><code>gameButton = list()
for i in range(5)
gameButton.append(list())
for j in range(5)
gameButton[i].append(Button(boardFrame, bg="khaki1", width=10, height=5, command=colorTheButton))
gameButton[i][j].grid(row=i, column=j, sticky=E)
</code></pre>
<p>其次,您应该将节点信息传递给<code>colorTheButton</code>方法,而不是稍后再尝试找出哪个按钮被按下:</p>
^{pr2}$
<p>相应地修改<code>colorTheButton</code>:</p>
<pre><code>def colorTheButton(row, column):
global colorCounter, boardColor
if colorCounter % 2 == 0:
...
</code></pre>
<p>注意:该函数的最后2行也会继续创建不可引用的button<strike>对象</strike><em>widgets</em>。在</p>
<p>所以更好:</p>
<pre><code>def colorTheButton(row, column):
global colorCounter, boardColor
if colorCounter % 2 == 0:
boardColor = "black"
else:
boardColor = "white"
colorCounter += 1
gameButton[row][column]['bg'] = boardColor
</code></pre>