You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Python Tkinter开发记忆游戏时如何判断哪个按钮被点击?

记忆游戏按钮点击功能实现

要实现点击按钮后识别对应按钮并修改文本,只需要给循环生成的每个按钮绑定带唯一索引参数的点击回调即可,修改后的完整代码如下:

from tkinter import *
import random

root = Tk()
root.title("Memory Game")

buttons = []  # 存储所有按钮
counter = 0
x = 0
y = 0

# 按钮点击回调函数,接收按钮在列表中的下标作为参数
def on_button_click(idx):
    # 这里可以替换成你记忆游戏需要显示的对应内容,比如配对的图案、文字等
    new_text = random.choice("ABCDEFGHIJKLMNOPQRSTUVWXYZ")
    buttons[idx].config(text=new_text)

# 生成6*6的按钮网格
for l in range(0,6):
    x = 0
    y += 1
    for i in range(0,6):
        # 绑定点击回调,用idx=counter规避lambda循环的延迟绑定问题
        buttons.append(Button(root, text="???", command=lambda idx=counter: on_button_click(idx)))
        buttons[counter].grid(column=x, row=y)
        counter += 1
        x += 1

root.mainloop()

关键改动说明

  • 新增了on_button_click回调函数,传入按钮在buttons列表中的下标即可定位到被点击的按钮,可自由修改文本、颜色等任意属性
  • 生成按钮时通过lambda idx=counter: on_button_click(idx)给每个按钮绑定独立的回调参数,避免循环生成时所有按钮都拿到最后一个下标的常见问题
  • 如果后续需要实现配对判断逻辑,只需要在回调里增加全局变量记录上一次点击的按钮下标,对比两次点击的文本是否一致即可

内容的提问来源于stack exchange,提问作者FallenTwins3

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 10:36:05