gpt4 book ai didi

python - 当有多个其他按钮时,是否可以通过单击为按钮着色

转载 作者:太空宇宙 更新时间:2023-11-03 19:48:54 25 4
gpt4 key购买 nike

我想制作一款名为“战舰”的游戏。为此,我必须允许用户放置他的船只。
我想通过允许用户为必须放置船只的字段着色来尝试这一点。我的问题是,我使用 2 个 for 循环在列表中创建了 15 x 15 个变量。实际上是否有命令的可能性,例如获取网格的行和列,因为例如,这部分总是给我最后一个 i最后一个j我已经要求了。否则,我将不得不创建 225 行,通过提及ij当使用lambda时.

self.ship[i][j] = tk.Button(root, text="", padx=30, pady=20, command=lambda:color(i,j))
self.ship[i][j].grid(row=i, column=j)

最佳答案

我希望下面的代码能为您提供一个良好的起点来继续您的游戏。

我使用了相同的方法,即使用两个 for 循环来创建 10x10 网格 按钮。然后我使用点击事件回调来获取正在单击的小部件,然后将所选按钮设为蓝色或对该小部件执行任何操作。

import tkinter as tk

class Game:

def __init__(self, master):
self.master = master
self.master.resizable(0,0)
# row index
for row in range(10):
# col index
for col in range(10):
self.button = tk.Button(master, width=1, height=1)
self.button.grid(row=row, column=col, padx=8, pady=8, ipadx=10, ipady=4)
self.button.bind("<Button-1>", self.callback)
master.mainloop()

def callback(self, event):
# get the clicked button
clicked_btn = event.widget
btn_at_row_col = clicked_btn.config(bg='blue', state='disabled')

if __name__ == "__main__":
root = tk.Tk()
Game(root)

输出 GUI:

这将呈现一个 10x10 按钮网格。

然后您可以单击任何使其变为蓝色的按钮。

关于python - 当有多个其他按钮时,是否可以通过单击为按钮着色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59963197/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com