Я пытаюсь создать игру на память и хочу, чтобы изображения появлялись после нажатия кнопок. Поскольку код сейчас, изображения появляются сразу. Я уверен, что есть простой способ заставить изображения выглядеть так, как будто они «за» кнопками при нажатии, но так как я новичок в этом, я не могу заставить его работать. Есть ли кто-нибудь, кто мог бы дать мне совет?
from tkinter import *
from PIL import Image, ImageTk
root=Tk()
topFrame=Frame(root)
topFrame.pack()
bottomFrame=Frame(root)
bottomFrame.pack(side=BOTTOM)
def showImage(kitten):
if kitten == 1:
load1 = Image.open('Kittens1.GIF')
render1 = ImageTk.PhotoImage (load1)
img1 = Label(image=render1)
img1.image = render1
img1.pack()
if kitten == 2:
load1 = Image.open('Kittens2.GIF')
render1 = ImageTk.PhotoImage (load1)
img1 = Label(image=render1)
img1.image = render1
img1.pack()
def kitten(button):
if button == 1:
picture = showImage(1)
return picture
if button == 2:
picture = showImage(2)
return picture
if button == 3:
picture = showImage(3)
return picture
if button == 4:
picture = showImage(4)
return picture
if button == 5:
picture = showImage(5)
return picture
if button == 6:
picture = showImage(6)
return picture
number1 = 1
number2 = 2
number3 = 3
number4 = 4
number5 = 5
number6 = 6
button1= Button(topFrame, text="button1", fg="red", command=kitten(number1))
button2= Button(topFrame, text="button2", fg="blue", command=kitten(number2))
button3= Button(topFrame, text="button3", fg="green", command=kitten(number3))
button4= Button(bottomFrame, text="button4", fg="purple", command=kitten(number4))
button5= Button(bottomFrame, text="button5", fg="orange", command=kitten(number5))
button6= Button(bottomFrame, text="button6", fg="yellow", command=kitten(number6))
#packar dem för att visa dem. För att få dem efter varandra på en rad, skriv side=LEFT. annars packas de bara uppe på varandra.
button1.pack(side=LEFT)
button2.pack(side=LEFT)
button3.pack(side=LEFT)
button4.pack(side=LEFT)
button5.pack(side=LEFT)
button6.pack(side=LEFT)
root.mainloop()