Help us understand the problem. What is going on with this article?

Tkinter - tkinter.PhotoImageがttk.Label上に表示されない

はじめに

TkinterPhotoImageLabelに表示しようとしたら、画像が表示されない現象に遭遇しました。

PhotoImageをLabelに表示できない

↓のようなコードを書いてラベルに画像を表示ししようとしましたが、実行してみると表示されず……。

logo_img = tkinter.PhotoImage(file="./res/logo.gif", width=118, height=28)
logo_lab = ttk.Label(self.top_frame, image=logo_img)
logo_lab.pack(side='top')

woooeeさんの解答を参考にしたら表示されました。
原因は、logo_imgの寿命だったようです。
logo_imgのインスタンスを束縛していなかったため、寿命が来て画像が表示されなかったようです。
↓のようにlogo_lab.photo = log_imgとしてインスタンを保持するようにしたら無事に画像が表示されました。

logo_img = tkinter.PhotoImage(file="./res/logo.gif", width=118, height=28)
logo_lab = ttk.Label(self.top_frame, image=logo_img)
logo_lab.photo = logo_img
logo_lab.pack(side='top')
narupo
個人Web開発者。C, Python3, JavaScript, Django などが好き。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away