Python中tkinter無法同時顯示多個image的解決方法及pack與place解析
0、問題
在用Tkinter進(jìn)行編程時,需要在一個Frame下顯示多個圖片,但是不管怎么設(shè)置都是只顯示最后一張,就像這樣:
代碼
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)結(jié)果

本來紅線處還有兩幅圖,總共三幅,但是現(xiàn)在只顯示了最后一幅。
1、原因
在上述代碼最后一行,我們這樣寫:
Label(window, image=image, bg='green').place(x=60 + rw * i, y=500)
在執(zhí)行過程中,每個image變量會覆蓋上一個image變量,導(dǎo)致運行過程中總是只有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)
補充
pack與place是沒有返回值的,所以在需要對要素進(jìn)行后續(xù)操作時,不要直接將該要素的生成和放置寫在同一句話中,就像這樣:
Label(window, text='直方圖:', font=('宋體', 16)).place(x=0, y=60)最好分開寫:
L1=Label(window, text='直方圖:', font=('宋體', 16))
L1.place(x=0, y=60)如果像一開始那樣寫L1=XXX.place(),那么最終得到的L1將是NoneType
到此這篇關(guān)于Python中tkinter無法同時顯示多個image的解決方法,pack與place的文章就介紹到這了,更多相關(guān)Python tkinter無法同時顯示多個image內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python神經(jīng)網(wǎng)絡(luò)facenet人臉檢測及keras實現(xiàn)
這篇文章主要為大家介紹了python神經(jīng)網(wǎng)絡(luò)facenet人臉檢測及keras實現(xiàn),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05
使用Python進(jìn)行同期群分析(Cohort?Analysis)
同期群(Cohort)的字面意思(有共同特點或舉止類同的)一群人,比如不同性別,不同年齡。這篇文章主要介紹了用Python語言來進(jìn)行同期群分析,感興趣的同學(xué)可以閱讀參考一下本文2023-03-03
對TensorFlow中的variables_to_restore函數(shù)詳解
今天小編就為大家分享一篇對TensorFlow中的variables_to_restore函數(shù)詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-07-07
Python實現(xiàn)轉(zhuǎn)換圖片背景顏色代碼
這篇文章主要介紹了Python實現(xiàn)轉(zhuǎn)換圖片背景顏色代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-04-04
Python3開發(fā)實例之非關(guān)系型圖數(shù)據(jù)庫Neo4j安裝方法及Python3連接操作Neo4j方法實例
這篇文章主要介紹了Python3開發(fā)實例之非關(guān)系型圖數(shù)據(jù)庫Neo4j安裝方法及Python3連接操作Neo4j方法實例,需要的朋友可以參考下2020-03-03

