Python tkinter查找单击了哪个按钮[重复]

2023-12-02

我正在尝试实现一个名为“五连胜”的游戏。 我创建了一个 15×15 的列表来放置按钮。 (我使用 range(16) 因为我还想要一行和一列来显示行号和列号)

我希望我的实现就像单击按钮时一样,它变成一个标签。 但我不知道用户点击了哪个按钮。

我怎样才能实现这一点?谢谢!

from tkinter import *
root=Tk()
root.wm_title("Five In a Row")
buttonlst=[ list(range(16)) for i in range(16)]

chess=Label(root,width=2,height=2,text='0')

def p(button):
    gi=button.grid_info()
    x=gi['row']
    y=gi['column']
    button.grid_forget()
    chess.grid(row=x,column=y)
    buttonlst[x][y]=chess

for i in range(16):
    for j in range(16):
        if i==0:
            obj=Label(root,width=2,text=hex(j)[-1].upper())
        elif j==0:
            obj=Label(root,width=2,text=hex(i)[-1].upper())
        else:
            obj=Button(root,relief=FLAT,width=2,command=p(obj))
        obj.grid(row=i,column=j)
        buttonlst[i][j]=obj

root.mainloop()

有一个类似的问题如何确定Python TKinter中按钮网格中的哪个按钮被按下?。但我不太明白。


要将按钮实例传递给命令,您必须分两步完成。首先,创建按钮,然后在第二步中配置命令。另外,您必须使用 lambda 来创建所谓的closure.

例如:

obj=Button(root,relief=FLAT,width=2)
obj.configure(command=lambda button=obj: p(button))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python tkinter查找单击了哪个按钮[重复] 的相关文章

随机推荐

  • java.lang.NoClassDefFoundError: org/apache/xpath/XPathAPI

    我正在 eclipse 中通过 main 执行一个类 结果我收到此错误 java lang NoClassDefFoundError org apache xpath XPathAPI 我正在使用jRE6 请帮我解决这个问题 确保你有xal
  • 如何比较burn (wix)中DetectCondition中的版本变量

    这是我的Fragment
  • 在 Qt 应用程序及其插件中使用 Singleton 类

    我正在尝试在我的 Qt 应用程序中使用 Singleton 类 它是一个名为 PrisLog 的程序范围调试记录器 该程序还有插件 我想让我的单例类可供这些插件使用 但这不起作用 据我所知 尝试在插件中使用该类会导致创建另一个实例 单例类只
  • 将 json 写入 cookie 时为什么要使用encodeURIComponent()

    特别是 当将 JSON 保存到 cookie 时 仅保存原始值是否安全 我不想编码的原因是因为json的值和键很小 但结构复杂 所以编码 替换所有的 和 大大增加了字符串长度 如果您的值包含 JSON 字符 例如逗号 引号 等 那么您可能应
  • React-native 与 Facebook 广告的世博问题

    尝试从 Facebook 显示插页式广告时出现错误 新应用不再支持广告请求中的 SDK 版本 请升级到 SDK 的最新版本之一 您是否知道它是否会在 expo 32 版本中修复 更新 fb sdk 32世博会什么时候发布 更新2019 01
  • 如何以编程方式更改选项卡指示器颜色

    I am 安卓新手 在开始编程之前我发现现在很多应用程序都在使用 Fragment 尤其是具有可滑动视图的选项卡 如何改变选项卡指示器 突出显示颜色 我用谷歌搜索并以编程方式将 ActionBar 颜色更改为红色 但不知道如何将选项卡指示器
  • 具有统一块 (UBO) 的实例名称无法使用 OpenGL/GLSL

    我在 OpenGL GLSL 应用程序中实现了一个统一的块来管理网格材质数据 环境光 漫反射光 镜面光和光泽度 对于我的第一次尝试 我实现了以下统一块语法 uniform MaterialBlock vec3 Ka Kd Ks float
  • Xcode 8.3 存档错误:链接器命令失败,退出代码 1

    仅在从 Xcode 8 2 升级到 Xcode 8 3 后我才开始收到此错误 并且仅在进行存档构建时 调试构建工作正常 当我通过 Xcode 进行存档时 我收到的唯一消息是 链接器命令失败 退出代码为 1 使用 v 查看调用 我用命令行构建
  • OpenCL 全局内存获取

    我正在考虑重新设计我的 GPU OpenCL 内核以加快速度 问题是有大量全局内存没有合并 并且提取确实降低了性能 因此 我计划将尽可能多的全局内存复制到本地 但我必须选择要复制的内容 现在我的问题是 多次提取小块内存是否会比更少提取大块内
  • php - 在偏移处添加字符串?

    如果我有一个像 test 这样的字符串 那么我有偏移量 0 3 的字符 我想在偏移量 6 处添加另一个字符串 是否有一个简单的 PHP 函数可以做到这一点 我正在尝试这个 但出现错误 PHP 致命错误 无法将赋值操作符与重载对象一起使用 也
  • 为什么 `int ;` 在 C 中编译得很好,但在 C++ 中却不行?

    考虑以下程序 参见现场演示here include
  • MATLAB 单图中的多个(并行)箱线图

    我正在使用 MATLAB 中的箱线图函数 我需要为 6 个 XTicks 绘制 6 个不同数据集的箱线图 即 x 轴中的每个刻度应包含 6 个相应的框 晶须 中线和其域内的异常值集 我尝试通过设置每个变量的偏移量来操作 XTick 属性 但
  • 确定谁调用事件处理程序

    我的应用程序中写入了标签 以便在修改其文本时进行集中 为此 我通过 EventHandler 调用一个方法 我想对每个标签使用相同的方法 但我不知道如何在方法中识别哪个标签调用它 如果我有这样的代码 lbl TextChanged obje
  • 使用 Jquery、PHP 下载 Ajax 文件

    我想使用 ajax 功能进行下载 用户将单击下载链接 该链接将 使用 ajax 和 GET 访问 PHP 文件 该文件将处理发送的 GET 变量并访问正确的文件进行下载 我有一些 PHP 脚本来处理 GET 变量 它们可以独立工作 但是当使
  • 设置类中对象的名称

    我想将类的名称设置为类中的变量之一 以便当我打印类时我得到它们的名称 我尝试设置 name 但它不起作用 这是我的课 class SNMPData object def init self device speed down 0 speed
  • 如何在 salesforce 中进行单元测试?

    我已经在 salesforce 上编写了代码 为了发布单元测试必须至少涵盖75 我面临的是classOne调用方法classTwo还必须覆盖classTwo的单元测试一级内即使它是在classTwo已经文件了 文件我的班级二 public
  • Yii2:根据相关表中的另一个字段自动填充字段

    我有一个 MySQL 表和模型patient entry其中包含字段patient name city and state 我还有另一个桌子 模型health card其中还包含patient name city and state 假设p
  • iOS/UI 自动化:UIAActionSheet 无法使用按钮进行操作

    我的问题与 XCode 的 Instruments 工具中的 UI 自动化模板有关 UI自动化如何支持UIActionSheet测试 我知道有一个 UIAActionSheet 元素 并且我能够在我的应用程序中获取它 但我不知道如何从操作表
  • gcloud auth登录抛出错误:gcloud崩溃(ConnectionError):HTTPSConnectionPool(host ='oauth2.googleapis.com',port = 443):超出最大重试次数

    gcloud builds submit昨天对我来说失败了 然后我尝试了gcloud config set project 那也失败了 所以我认为登录可能已过期所以尝试了gcloud auth login 在所有情况下 它总是抛出以下错误
  • Python tkinter查找单击了哪个按钮[重复]

    这个问题在这里已经有答案了 我正在尝试实现一个名为 五连胜 的游戏 我创建了一个 15 15 的列表来放置按钮 我使用 range 16 因为我还想要一行和一列来显示行号和列号 我希望我的实现就像单击按钮时一样 它变成一个标签 但我不知道用