【发布时间】:2020-08-17 03:39:20
【问题描述】:
我想制作一款战舰游戏,每个玩家将不同的战舰放在 10 x 10 的场地上。要知道船的位置,如果单击了按钮,我想将变量从 False 更改为 True。按钮的颜色也应该变为黑色,但如果它已经是黑色,它应该变回灰色,并且变量应该再次为假。 在我的代码中,我只为按钮定义了一个类。 master 应该是一个框架。需要命令“放置命令”,因为我需要这些按钮用于第二帧和另一个命令。 bentuzung 表示使用它的人(在我的情况下是 1 或 2)。 所以我正在寻找一种将变量分配给按钮的方法。代码也不能太长。
from tkinter import *
class buttons():
def __init__(self, master, benutzung):
self.button_list = []
for j in range(10):
for m in range(10):
btn = Button(master, text = " ")
btn.grid(row = j, column = m)
self.button_list.append(btn)
self.put_command(benutzung)
def put_command(self, benutzung):
if benutzung == 1:
for x in self.button_list:
x.configure(command = lambda bt = x: self.set_ship(bt))
def set_ship(self, btn):
btn.configure(bg = "black")
【问题讨论】:
-
请尝试将代码缩减为minimal reproducible example。如果您询问如何将值与按钮相关联,我们只需要一两个按钮。如果我们可以用两个按钮解决问题,我们可以解决 100 个按钮。顺便说一句,您应该考虑将按钮制作成一个循环。这将使代码更容易修改。
标签: python-3.x tkinter