如何在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
相关产品推荐
相关产品推荐

