Python:tkinter無法同時顯示多個image的解決方法
阿新 • • 發佈:2022-01-07
0、問題
在用Tkinter進行程式設計時,需要在一個Frame下顯示多個圖片,但是不管怎麼設定都是隻顯示最後一張,就像這樣:
程式碼
for i in range(3): ... image=ImageTk.PhotoImage(f'img{i}.png')#分別開啟img1,img2,img3並顯示 Label(window, image=image, bg='green').place(x=60 + rw * i, y=500)
結果
本來紅線處還有兩幅圖,總共三幅,但是現在只顯示了最後一幅。
1、原因
在上述程式碼最後一行,我們這樣寫:
Label(window, image=image, bg='green').place(x=60 + rw * i, y=500)
在執行過程中,每個image變數會覆蓋上一個image變數,導致執行過程中總是只有1個image參與了繪製,從而只顯示一個image
2、解決
給不同的image分別命不同的名,或者乾脆用一個List:
image=[] for i in range(3): ... image.append(ImageTk.PhotoImage(f'img{i}.png') Label(window,image=image[i],bg='green').place(x=60+rw*i,y=500)