【发布时间】:2014-02-07 05:16:01
【问题描述】:
我目前正在尝试使用 Python 和 tkinter 创建战舰游戏。 我需要声明 100 个按钮(每个玩家可以触发的位置一个),我发现我可以这样做以将它们放在 10x10 的网格中,同时还使用变量 buttons_dict 存储对它们的引用
from tkinter import *
from tkinter import ttk
root = Tk()
board_frame = ttk.Frame(root, padding=5)
board_frame.grid(column=0,row=0)
COORDS_LIST = []
buttons_dict = {}
for r in range(1,11):
for c in range(1,11):
coord = str(r)+"_"+str(c)
COORDS_LIST.append(coord)
buttons_dict[COORDS_LIST[-1]] = ttk.Button(board_frame, text="O", width="2")
buttons_dict[COORDS_LIST[-1]].grid(row=r,column=c)
root.mainloop()
这段代码创建了 100 个完全按照我的需要显示的按钮。当我想向他们每个人发出命令时,问题就开始了。我想要的是一个通用函数(对于这个问题,我们可以称之为“fire_here”),每次按下一个按钮时都会调用它,但我需要它传递 1 个或 2 个参数: 它可以是创建该按钮时附加到 COORDS_LIST 的值,也可以是按钮的“列”和“行”值。 那么我该怎么做,或者如何在放置一个按钮后获得它的行/列??
【问题讨论】: