收集垃圾的画布图像

问题描述

我正在构建一个多帧 TK 应用程序,问题是当我为背景设置画布图像时,它正在收集垃圾

class template (Tk):

    def __init__(self,*args,**kwargs):

        Tk.__init__(self,**kwargs)

        myFrames=(startpage,identLeave)

        container = Frame(self)
        container.pack(side="top",fill="both",expand= True)
        container.grid_rowconfigure(0,weight=1)
        container.grid_rowconfigure(0,weight=1)

        self.frames = {}

        for F in myFrames:

            frame = F(container,self)
            self.frames[F] = frame
            
        
        self.show_frame(startpage)
    
    def show_frame(self,cont):
        frame= self.frames[cont]
        frame.tkraise()


class startpage(Frame):
    def __init__(self,parent,controller):

        Frame.__init__(self,parent)
        
        SetBG(parent,r'src\images\1.png')
        
        test= Button(parent,text="test").grid(row=0,column=0)

class identLeave(Frame):
    def __init__(self,parent)


app = template()
app.mainloop()

这就是我构建画布的方式

def SetBG(parent,path):

    #loading Image into system (path is relative to folder from Main.py)
    loadIMG = Image.open(path)
    img = ImageTk.PhotoImage(loadIMG)

    #setting canva with image resolution
    backg = Canvas(parent,width=1920,height=1080)
    backg.grid(sticky="nsew",columnspan=30,rowspan=30)
        
    #setting image inside the canva for display
    backg.create_image(0,image=img,ancho='nw')

    return(backg)

在类似的按钮上,我只是通过使用 button.image(img) 绕过了垃圾收集器,但在这种情况下,我无法为画布找到类似的东西。

我也对如何为应用程序设置背景图像的其他方法持开放态度

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)