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

如何在Python Tkinter中修改被点击按钮的颜色

修改Tkinter点击按钮的颜色

要实现点击哪个按钮就修改哪个按钮的颜色,核心是让回调函数识别被点击的按钮对象,可以通过lambda给按钮的command参数绑定带自身引用的函数,具体实现如下:

示例代码

import tkinter as tk

def change_clicked_btn_color(btn):
    # 修改按钮背景色为红色,可自行替换成你需要的颜色(比如"blue"、"#f0f0f0")
    btn.config(bg="red")
    # 如果需要修改文字颜色,用fg参数:btn.config(fg="white")

root = tk.Tk()
root.title("按钮变色示例")

# 单独创建按钮的示例(这里写3个,你可以扩展到50个)
btn1 = tk.Button(root, text="按钮1", width=10, command=lambda: change_clicked_btn_color(btn1))
btn1.pack(pady=5)

btn2 = tk.Button(root, text="按钮2", width=10, command=lambda: change_clicked_btn_color(btn2))
btn2.pack(pady=5)

btn3 = tk.Button(root, text="按钮3", width=10, command=lambda: change_clicked_btn_color(btn3))
btn3.pack(pady=5)

# 你的50个单独按钮都可以按这个格式设置command参数
root.mainloop()

关键说明

  • 每个按钮的command用lambda: change_clicked_btn_color(当前按钮对象),点击时会把按钮自身传给回调函数,确保只修改被点击的按钮
  • btn.config(bg="颜色值")是修改按钮背景色的核心代码,bg对应背景,fg对应文字颜色
  • 若要实现点击切换颜色(比如点击变红,再点击恢复默认),可以给函数加判断逻辑:
    def change_clicked_btn_color(btn):
        current_color = btn.cget("bg")
        # 兼容不同系统的默认按钮背景色,用"SystemButtonFace"作为默认值
        btn.config(bg="red" if current_color == "SystemButtonFace" else "SystemButtonFace")
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 12:44:53