所以我尝试定义一个函数来更改程序中可用的所有按钮的颜色,而无需单独配置每个按钮,如下所示:
def change_colors():
#change button a, b and c colors
a = Button(text='1',command=change_color)
b = Button(text='2',command=change_color)
c = Button(text='3',command=change_color)
在这个例子中我可以这样做:
def change_colors():
a.config(bg='red')
b.config(bg='red')
c.config(bg='red')
但在我的实际代码中有很多按钮,每个按钮都需要不同的颜色
这是处理这个问题的一种方法,虽然有点罗嗦......
tk.Button
小部件config
设置其 command
参数(因为您需要引用按钮本身,因此必须首先创建它们!)lambda
将按钮对象和颜色传递给处理颜色更改的函数(lambda 用于将动态参数传递给函数)import tkinter as tk
root = tk.Tk()
def change_btn_color(btn: tk.Button, color: str) -> None:
btn.config(bg=color)
a = tk.Button(text='1')
a.config(command=lambda btn=a, color='red': change_btn_color(btn, color))
a.pack()
b = tk.Button(text='2')
b.config(command=lambda btn=b, color='green': change_btn_color(btn, color))
b.pack()
c = tk.Button(text='3')
c.config(command=lambda btn=c, color='blue': change_btn_color(btn, color))
c.pack()
root.mainloop()