【问题标题】:Getting more than one Image onto the app?将多个图像添加到应用程序中?
【发布时间】:2017-04-09 02:46:43
【问题描述】:

我正在开发一个比萨应用程序,并想添加图像以使用检查按钮选项,我可以在那里获得一张图像,但是当我将下一张图像替换为第一张时,我真的不知道该做什么。这是我的代码:

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()

【问题讨论】:

    标签: python image tkinter


    【解决方案1】:

    为了正确显示ImageTk.PhotoImage 图像,您需要为每个图像保留一个永久引用(请参阅this answerdocumentation)。

    因此,当您定义第二个ImageTk.PhotoImage 时,您应该将其分配给一个新变量,而不是覆盖第一个:

    photo2 = ImageTk.PhotoImage(second_image)
    label_image2 = tk.Label(image=photo2)
    label_image2.grid(column=0, row=10)
    

    【讨论】:

    猜你喜欢
    • 2015-06-15
    • 1970-01-01
    • 1970-01-01
    • 2013-07-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多