问题描述
我正在构建一个多帧 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 (将#修改为@)