用于在鼠标点击时更改图片的图片视图的类

问题描述 投票:0回答:1

我想创建一个有图片的类,然后通过鼠标点击将其更改为下一个。我是oop的新手,我的想法是让类与现实生活类似,每个新图片都有新的类实例,这样做有可能吗?这是我的代码

import tkinter as tk
from PIL import Image,ImageTk
class Picture():
    _count=1
    def __init__(self,window):
        self.id=Picture._count
        Picture._count+=1
        self.img=Image.open(r'C:\ImgArchive\img%s.png' % self.id)
        self.pimg = ImageTk.PhotoImage(self.img)
        self.lab=tk.Label(window,image=self.pimg)
        self.lab.pack()
        self.lab.bind('<1>',self.click)
    def click(self,event):
        self.lab.destroy()
        self=self.__init__(window)
window = tk.Tk()
window.title('Album')
window.geometry('1200x900')
pic=Picture(window)
window.mainloop()

它工作正常,但我不确定我的班级的旧实例是否被删除,是吗?我使用self.lab.destroy()因为如果我没有新图片出现,就像这样

而不是这个

那么为什么会发生呢?它的优雅方式是什么?

python oop tkinter
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.