나는 iPhoto 또는 다른 유사한 프로그램의 메인 화면과 마찬가지로 이미지 그리드를 표시하기 위해 응용 프로그램에서 작업하고 있습니다. 이렇게하려면, 나는 캔버스를 설정하고, 파일 이름의 목록을 반복 각에서 광 화상을 만들고, 캔버스에 그들을 표시 : Application 클래스의 속성입니다Tkinter create_image not displayed
self.canvas = Canvas(self.bottomFrame, width = 700, height = 470, bg = "Red")
self.canvas.pack()
for i, filename in enumerate(image_list):
photo_image = PhotoImage(filename)
self.canvas.create_image(100*(round(i/4)+1), 100*(i+1), image = photo_image)
self.labelList.append(photo_image)
labelList하고, image_list는 .gif 사진의 파일 이름으로 채워집니다. 그러나 앱을 실행하면 이미지가 표시되지 않습니다. 빨간색 사각형이 나타나기 때문에 캔버스가 있다는 것을 알고 있지만 이미지가 없습니다.
내가 여기에 무엇을 놓치고 있습니까? 결과를 찾고있는 끝없는 토론 페이지를 스크롤하여 그 작업을 찾지 못했습니다.
어떤 유형의 파일이'filename'입니까? – mgilson
"응용 프로그램에서 이미지 객체에 대한 참조를 유지해야합니다." http://effbot.org/tkinterbook/canvas.htm#Tkinter.Canvas.create_image-method. 물론 했니? – lolopop
@pythonm - 참조는'self.labelList'에 보관되어야합니다. 문제 없습니다. – mgilson