注意事项:
1、同一个窗口中grid与pack不能共用
2、button控件中的command的回调函数如果是一个带参数的函数,组要利用lambda,并且如果在利用循环创建button,该回调函数的参数与循环变量有关的话,需要在变量申明的时候加入等号。具体见https://stackoverflow.com/questions/20596892/disabling-buttons-after-click-in-tkinter
from Tkinter import Tk, Button, GROOVE
root = Tk()
def appear(index, letter):
# This line would be where you insert the letter in the textbox
print letter
# Disable the button by index
buttons[index].config(state="disabled")
letters=["A", "T", "D", "M", "E", "A", "S", "R", "M"]
# A collection (list) to hold the references to the buttons created below
buttons = []
for index in range(9):
n=letters[index]
button = Button(root, bg="White", text=n, width=5, height=1, relief=GROOVE,
command=lambda index=index, n=n: appear(index, n))
# Add the button to the window
button.grid(padx=2, pady=2, row=index%3, column=index/3)
# Add a reference to the button to 'buttons'
buttons.append(button)
root.mainloop()