在使用 Tkinter 创建包含按钮矩阵的简单窗口时,我遇到以下问题:当单击其中一个按钮时,事件处理程序使用按钮控件上的配置方法更改该按钮的文本。这种方法有效。但是我还想更改其他按钮中的文本,但这不起作用。我使用的方法是在创建按钮时,在使用网格几何管理器将其放置之前,存储 Button 方法返回的对象。打印此对象时,它看起来像 “.123456789L”,似乎是指向小部件的指针。我还在此使用 configure 来更改按钮文本。但不知何故,这似乎是错误的,因为它有时有效,而大部分时间都不起作用。不幸的是没有错误消息,只是在调用 configure 时没有任何发生。我检查过,它似乎是指向小部件的正确指针。我是否必须使用一种特殊的方法来影响调用事件处理程序以外的小部件?以下是代码的相关部分:

# CREATING THE BUTTONS:
buttons={} # global
for i in range(3):
for j in range(3):
button = Tkinter.Button(self,text='foo')
buttons[button]=(i,j)
button.grid(column=j,row=i)
button.bind( "<Button-1>", self.OnButtonClick )
# CHANGING BUTTONS:
def find_button(i,j):
"""Return the pointer to the other button to be changed when a button has been clicked."""
for button,key in buttons.items():
if key==(i,j): return button
def OnButtonClick(self,event):
print "You clicked the butt


1738

被折叠的 条评论
为什么被折叠?



