cannot associate image to tkinter label

旧巷老猫 提交于 2019-11-28 13:09:14
Jemshid KK

This problem happens when we attempt to run the above code in Ipython. And it can be solved by changing the line

root = tk.Tk() to

root = tk.Toplevel()

You need to create the root widget before you call any other tkinter functions. Move the creation of root to be before the creation of the image.

The general way which I use to display an image in tkinter is:

import Tkinter as tk
root = tk.Tk()
image1 = tk.PhotoImage(file = 'name of image.gif')
# If image is stored in the same place as the python code file,
# otherwise you can have the directory of the image file.
label = tk.Label(image = image1)
label.image = image1 # yes can keep a reference - good!
label.pack()
root.mainloop()

In the above case it works but you have something like:

import Tkinter as tk
image = tk.PhotoImage(file = 'DreamPizzas.gif') #here this is before root = tk.Tk()
root = tk.Tk()
# If image is stored in the same place as the python code file,
# otherwise you can have the directory of the image file.
label = tk.Label(image = image)
label.image = image
label.pack()
root.mainloop()

this gives me a runtime error: too early to create image.

but you have said that your error is image pyimage9 doesn't exist, this is strange because at the top you have set filename to 'AP_icon.gif', so you would think that you get a different error as I dont know where pyimage9 comes from. This makes me think that maybe you are getting the file name incorrect somewhere? You also need to move root = tk.Tk() to the top under imports.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!