Skip to content Skip to sidebar Skip to footer

Tkinter Label Does Not Show Image

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

Solution 1:

When you add a PhotoImage or other Image object to a Tkinter widget, you must keep your own reference to the image object. If you don’t, the image won’t always show up.

Decision here

Solution 2:

For some reason (I don't understand exactly why) you must anchor the image object into the widget in order for it to display. Therefore try the following change at your code:

from Tkinter import *
from PIL import Image, ImageTk

classGUI:

    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)
        self.icon_size.image = self.icon  # <== this is were we anchor the img object
        self.icon_size.configure(image=self.icon)
        self.icon_size.pack(side=LEFT)

root = Tk()


app = GUI(root)

root.mainloop()

Good Luck!

Solution 3:

For all future readers, in my case the problem lied with transparency. Removing the alpha channel from the image fixed it.

Post a Comment for "Tkinter Label Does Not Show Image"