Изменение иконки кнопки 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()