Не работает кнопка tkinter и не подставляет изображение
Вот код. Нужна игра которая будет вычислять две одинаковые картинки, по типу игры pexeso
from tkinter import *
import random
from tkinter import messagebox
from PIL import ImageTk, Image
win = Tk()
win.geometry("460x450")
imgmain = ImageTk.PhotoImage(Image.open("IMG_6080.jpg").resize((200,200)))
football = ImageTk.PhotoImage(Image.open("IMG_6081.webp.png").resize((200,200)))
basketball = ImageTk.PhotoImage(Image.open("IMG_6082.webp.png").resize((200,200)))
tennis = ImageTk.PhotoImage(Image.open("IMG_6088.webp.png").resize((200,200)))
rugby = ImageTk.PhotoImage(Image.open("IMG_6087.webp.png").resize((200,200)))
bigtennis = ImageTk.PhotoImage(Image.open("IMG_6085.webp.png").resize((200,200)))
voleyball = ImageTk.PhotoImage(Image.open("IMG_6084.webp.png").resize((200,200)))
beachball = ImageTk.PhotoImage(Image.open("IMG_6083.webp.png").resize((200,200)))
bowling = ImageTk.PhotoImage(Image.open("IMG_6086.webp.png").resize((200,200)))
matches = [football,football,basketball,basketball,tennis,tennis,rugby,rugby,bigtennis,bigtennis,voleyball,voleyball,beachball,beachball,bowling,bowling]
random.shuffle(matches)
frm = Frame()
frm.pack(pady=10)
my_label = Label(win, text="")
my_label.pack(pady=20)
count = 0
answer_list= []
answer_dict = {}
winner = 0
def wins():
my_label.config(text="Congratulations! You Win!!!")
button_list = [btn0,btn1,btn2,btn3,btn4,btn5,btn6,btn7,btn8,btn9,btn10,btn11,btn12,btn13,btn14,btn15]
for button in button_list:
button.config(bg="yellow")
def button_click(b, number):
global count,answer_list,answer_dict
if b["image"] == 'imgmain' and count < 2:
b['image'] = matches[number]
answer_list.append(number)
answer_dict[b] = matches[number]
count+=1
if len(answer_list) == 2:
if matches[answer_list[0]] == matches[answer_list[1]]:
my_label.config(text='MATCH!')
for key in answer_dict:
key['state'] = 'disabled'
count = 0
answer_dict = {}
answer_list = []
winner += 1
if winner == 6:
wins()
else:
my_label.config(text='NOOO!')
count = 0
answer_list = []
messagebox.showinfo("Incorrect!", "Incorrect")
for key in answer_dict:
key["text"] = " "
answer_dict = {}
btn0 = Button(master = frm, height = 100, width = 100 ,image = imgmain, command= lambda:button_click(btn0, 0))
btn1 = Button(master = frm,height = 100, width = 100 , image = imgmain, command= lambda:button_click(btn1, 1))
btn2 = Button(master = frm,height = 100, width = 100 , image = imgmain, command= lambda:button_click(btn2, 2))
btn3 = Button(master = frm,height = 100, width = 100 , image = imgmain, command= lambda:button_click(btn3, 3))
btn4 = Button(master = frm,height = 100, width = 100 , image = imgmain, command= lambda:button_click(btn4, 4))
btn5 = Button(master = frm,height = 100, width = 100 , image = imgmain, command= lambda:button_click(btn5, 5))
btn6 = Button(master = frm,height = 100, width = 100 , image = imgmain, command= lambda:button_click(btn6, 6))
btn7 = Button(master = frm,height = 100, width = 100 , image = imgmain, command= lambda:button_click(btn7, 7))
btn8 = Button(master = frm,height = 100, width = 100 , image = imgmain, command= lambda:button_click(btn8, 8))
btn9 = Button(master = frm,height = 100, width = 100 , image = imgmain, command= lambda:button_click(btn9, 9))
btn10 = Button(master = frm,height = 100, width = 100 , image = imgmain, command= lambda:button_click(btn10, 10))
btn11 = Button(master = frm,height = 100, width = 100 , image = imgmain, command= lambda:button_click(btn11, 11))
btn12 = Button(master = frm,height = 100, width = 100 , image = imgmain, command= lambda:button_click(btn12, 12))
btn13 = Button(master = frm,height = 100, width = 100 , image = imgmain, command= lambda:button_click(btn13, 13))
btn14 = Button(master = frm,height = 100, width = 100 , image = imgmain, command= lambda:button_click(btn14, 14))
btn15 = Button(master = frm,height = 100, width = 100 , image = imgmain, command= lambda:button_click(btn15, 15))
btn0.grid(row=0, column=0)
btn1.grid(row=0, column=1)
btn2.grid(row=0, column=2)
btn3.grid(row=0, column=3)
btn4.grid(row=1, column=0)
btn5.grid(row=1, column=1)
btn6.grid(row=1, column=2)
btn7.grid(row=1, column=3)
btn8.grid(row=2, column=0)
btn9.grid(row=2, column=1)
btn10.grid(row=2, column=2)
btn11.grid(row=2, column=3)
btn12.grid(row=3, column=0)
btn13.grid(row=3, column=1)
btn14.grid(row=3, column=2)
btn15.grid(row=3, column=3)
win.mainloop()
Источник: Stack Overflow на русском