ich versuche Momentan Schach zu Programmieren und hänge gerade an einem Problem bei welchem der Garbage Collector Bilder im For Loop löscht und lediglich das letzte Bild Anzeigt
ca so sieht mein code aus
ich denke mal das Problem liegt in der drawFigures() Methode
Code: Alles auswählen
import tkinter as tk
import Figures
class Variables:
figureLst=[Figures.Pawn("1","White",0,1),Figures.Pawn("2","Black",0,2),Figures.Pawn("2","Black",0,6)]
figureImgLst= []
class Window:
screenWidth = 850
screenHeight = 850
def __init__(self, master):
self.master = master
self.frame = tk.Frame(self.master)
self.canvas = tk.Canvas(self.frame, width = self.screenWidth, height = self.screenHeight)
self.canvas.pack()
self.frame.pack()
self.drawFigures()
def drawFigures(self):
for figure in Variables.figureLst:
posInPx= self.gridToPx(figure.getPosition())
self.figureImg = tk.PhotoImage(file=("Images/Chess_"+figure.getFigureType()+"_"+figure.COLOR+".png"))
Variables.figureImgLst.append(self.figureImg)
self.canvas.create_image(posInPx[0],posInPx[1], anchor=tk.NW, image=self.figureImg)
def gridToPx(self,posInGrid):
posInPx = [posInGrid[0]*100+25,posInGrid[1]*100+25]
return posInPx
def main():
root = tk.Tk()
app = Window(root)
root.mainloop()
if __name__ == '__main__':
main()