I'm trying to learn some tkinter. I can't get tkinter to display an icon. I don't know where it goes wrong. It does not produce any error and it respects the size of the image, but it's invisible. Everything I found online tells to add a second reference to prevent garbage collection from python, but somehow this did not the trick.
Here is the part of my code that goes wrong:
from Tkinter import *
from PIL import Image, ImageTk
class GUI:
def __init__(self, master):
frame = Frame(master)
frame.pack()
#status bar
self.bar = Frame(root, relief=RIDGE, borderwidth=5)
self.bar.pack(side=TOP)
self.iconPath = 'data/icons/size.png'
self.icon = ImageTk.PhotoImage(Image.open(self.iconPath))
self.icon_size = Label(self.bar, image = self.icon)
self.icon_size.pack(side=LEFT)
root = Tk()
app = GUI(root)
root.mainloop()
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…