Изменение иконки кнопки Python

Подскажите, пожалуйста, как изменить состояние кнопки(кнопка - иконка=картинка, чтобы при нажатии изменялась иконка кнопки). В данном примере при нажатии изменяется текст кнопки.

from tkinter import *

def button1 (event, button):
    if button == "OFF":
        btn1 ["text"] = "ON"
    else:
        btn1 ["text"] = "OFF"
...

btn = Button(root, text="OFF", width=2, height=1)
btn.grid(column=0, row=1)
btn.bind("<Button-1>, lambda event:button1(event, btn1["text"]))
....

root=Tk()
root.title("1")
root.geometry('500x500')

Ответы (2 шт):

Автор решения: DGDays

Это должно сработать

from tkinter import *
from PIL import Image, ImageTk
import os

win = Tk()

img_name = os.path.dirname(os.path.abspath(__file__))+'/pic.png'       #Ваша картинка
img_name1 = os.path.dirname(os.path.abspath(__file__))+'/pic1.png'     #Ваша вторая картинка

img = Image.open(img_name)
img_photo = ImageTk.PhotoImage(img)
pic = 0

def button1 ():
    global pic
    if pic == 0:
        img = Image.open(img_name)
        pic = 1
    elif pic == 1:
        img = Image.open(img_name1)
        pic = 0
        print (pic)
    img_photo = ImageTk.PhotoImage(img)
    btn.configure(image = img_photo)

btn = Button(win, image = img_photo, width=100, height=100, command = lambda: button1())
btn.grid(column=0, row=1)

win.mainloop()
→ Ссылка
Автор решения: Сергей

Получилось вот так

from tkinter import *
from PIL import Image, ImageTk

win = Tk()

img_name = 'pic.png'       #Ваша картинка
img_name1 = 'pic1.png'     #Ваша вторая картинка

img1 = Image.open(img_name)
img_photo1 = ImageTk.PhotoImage(img1)
img2 = Image.open(img_name1)
img_photo2 = ImageTk.PhotoImage(img2)

pic = 0

def button1 ():
    global pic
    if pic == 0:
        btn.configure(image = img_photo2)
        pic = 1
    elif pic == 1:
        btn.configure(image = img_photo1)
        pic = 0

btn = Button(win, image = img_photo1, command = lambda: button1())
btn.grid(column=0, row=1)

win.mainloop()
→ Ссылка