tkinter& PIL:删除图像

时间:2016-08-12 15:21:07

标签: python tkinter python-imaging-library

我试图编写简单的应用程序,按下按钮后会显示随机电影的海报。 问题:我不知道在显示下一张图片之前如何删除一张图片(因此他们不会互相堆叠,就像这里:enter image description here)。

我缩短的代码:

from tkinter import *
from tkinter import ttk
import random
from PIL import ImageTk, Image


mlist = ['resized.jpg', 'cat.jpg']
class App(Frame):
    def __init__(self, master):
        ttk.Frame.__init__(self, master, padding='5')
        self.grid(column=0, row=0, sticky=(N, W, E, S))
        self.create_button()
        self.name = ttk.Label()
        self.image = ttk.Label()

    def create_button(self):
        self.button = ttk.Button(self,
                             text="Press me",
                             width=12,
                             command=lambda: self.display()
                             ).grid(column=0, row=2, columnspan=2, pady=10,  sticky=N)

    def display(self):
        self.name.destroy()
        k = random.randrange(0, 2)
        self.name = ttk.Label(self, font=(None, 16), text=mlist[k])
        self.image = Image.open(mlist[k])
        poster = ImageTk.PhotoImage(self.image)
        display = ttk.Label(self, image=poster)
        display.my_image = poster

        display.grid(row=2, column=3, rowspan=3)
        self.name.grid(row=0, rowspan=2, column=3)


root = Tk()
root.title("Test")
root.geometry("550x575")
app = App(root)
root.mainloop()

我相信,我应该应用类似于' self.name.destroy()' on' self.image'。然而,没有这样的方法......那么如何解决呢?

0 个答案:

没有答案