Tkinterで押したボタンだけの色を変える方法


example.py
def setnumber():
    column = -1
    row = 0
    root = tk.Tk()
    root.title('numbers')
    root.geometry('470x310')
    for i in range(101):
        if i > 0:
            if i%10 == 1:
                row += 1 
                column = -1
            column += 1
            text=f'{i}'
            btn = tk.Button(root, text=text)
            btn.grid(column=column, row=row)
            btn.config(command=collback(btn))
    root.mainloop()

def collback(btn):
    def nothing():
        btn.config(bg='#008000')
    return nothing

まず、setnumber()のところで1〜100までのボタンを作っています。すこしややこしく見えるのは10個作ったら改行するようにしたためです。そして、最後にコールバック関数としてcollback(btn)を指定し、変数btnを引数として渡します。その関数内でさらにnothingという関数を呼び出して色を変えるようにします。
これを実行すると以下のように押されたボタンだけが緑色になります。