我正在开发一个披萨应用程序,想要添加图像以使用checkbutton选项,我可以在那里得到一张图片就好了但是当我把下一张图片放在它上面取代第一张时,我就是真的迷失了怎么做。这是我的代码:
import tkinter as tk
from PIL import Image, ImageTk
import webbrowser
URL = "http://pizzahut.com.au"
pizza = tk.Tk()
pizza.title("Pizza App")
pizza.geometry("300x400")
def open_ph(event):
webbrowser.open_new_tab("http://pizzahut.com.au")
button = tk.Button(pizza, text="Welcome to Awesome Pizza")
button.grid(column=0, row=0)
button.configure(foreground="black")
button.configure(background="red")
checkbutton = tk.Checkbutton(pizza, text="Meat Lovers")
checkbutton.grid(column=0, row=1, padx=(5, 95))
checkbutton.configure(foreground="red")
checkbutton2 = tk.Checkbutton(pizza, text="Supreme")
checkbutton2.grid(column=0, row=20, padx=(10, 120))
checkbutton2.configure(foreground="darkgreen")
image = Image.open(r"C:\Users\simon\desktop\pictures\pizza_pics\meat_lovers.jpg")
image.thumbnail((100, 100), Image.ANTIALIAS)
photo = ImageTk.PhotoImage(image)
label_image = tk.Label(image=photo)
label_image.grid(column=0, row=7, padx=(5, 95))
second_image = Image.open(r"C:\Users\simon\Desktop\pictures\pizza_pics\supreme.jpg")
second_image.thumbnail((100, 100), Image.ANTIALIAS)
photo = ImageTk.PhotoImage(second_image)
label_image = tk.Label(image=photo)
label_image.grid(column=0, row=10)
button.bind("<Button-1>", open_ph)
pizza.mainloop()
答案 0 :(得分:0)
为了正确显示ImageTk.PhotoImage
张图片,您需要为每张图片保留持久性参考(请参阅this answer和documentation)。
因此,当您定义第二个ImageTk.PhotoImage
时,您应该将其分配给新变量,而不是覆盖第一个变量:
photo2 = ImageTk.PhotoImage(second_image)
label_image2 = tk.Label(image=photo2)
label_image2.grid(column=0, row=10)