yexiaosheng_ 2022-05-02 18:49 采纳率: 100%
浏览 21
已结题

如何获取列表生成的按钮的下标

我用列表的形式生成了一组按钮(tkinter中的),并绑定了一个改变按钮颜色的事件,预期是当我点击一个按钮时,这个按钮会变色。但是每次我点击一个按钮时都只有最后一个按钮变色,相应按钮不会变色。想知道如何做到点击一个按钮改变这个按钮本身的颜色。

  • 写回答

2条回答 默认 最新

  • 请叫我问哥 Python领域新星创作者 2022-05-02 19:24
    关注

    问题主要在于如何向command指向的函数传参,因为Button(command=)无法传递函数的参数。
    我的做法是这样的:

    1. 创建一个子类,继承tk.Button
    2. 在子类里,创建一个类方法
    3. 为Button对象赋值类方法

    代码如下:

    class Newbutton(tk.Button):
        def change_color(self):
            self.configure(bg='red')
    btn = []
    for i in range(10):
        btn.append(Newbutton(window,text=i,bg='green',width=2, height=2))
        btn[i].configure(command=btn[i].change_color)
        btn[i].pack()
    

    如果有更好的办法可以一起讨论,互相学习

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 5月10日
  • 已采纳回答 5月2日
  • 创建了问题 5月2日

悬赏问题

  • ¥15 服务端控制goose报文控制块的发布问题
  • ¥15 学习指导与未来导向啊
  • ¥15 求多普勒频移瞬时表达式
  • ¥15 如果要做一个老年人平板有哪些需求
  • ¥15 k8s生产配置推荐配置及部署方案
  • ¥15 matlab提取运动物体的坐标
  • ¥15 人大金仓下载,有人知道怎么解决吗
  • ¥15 一个小问题,本人刚入门,哪位可以help
  • ¥30 python安卓开发
  • ¥15 使用R语言GD包一直不出结果