Вам нужно будет запомнить последнее действие и выбрать, чтобы выполнить другое в функции обратного вызова.В моем примере я делаю это с помощью StringVar()
, но это можно сделать любым количеством способов.
Затем просто проверьте состояние в функции обратного вызова и примените требуемое действие:
from tkinter import *
root = Tk()
root.geometry('300x200+800+50')
def do():
if info.get() == 'Change bg -> red':
b.config(bg='red')
info.set('Change bg -> tan')
else:
b.config(bg='tan')
info.set('Change bg -> red')
info = StringVar()
info.set('Change bg -> red')
b = Button(root, textvariable=info, command=do)
b.pack(pady=20)
root.mainloop()