Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
517 views
in Technique[技术] by (71.8m points)

python - 无法将图像与tkinter标签相关联(cannot associate image to tkinter label)

I am trying to display an image to a tkinter GUI using tkinter.Label() widget.

(我正在尝试使用tkinter.Label()小部件向tkinter GUI显示图像。)

The procedure seems simple and straightforward, but this code doesn't work!

(该过程看起来很简单明了,但是此代码不起作用!)

code:

(码:)

import Tkinter as tk
import Image, ImageTk, sys

filename = 'AP_icon.gif'
im = Image.open(filename) # Image is loaded, because the im.show() works

tkim = ImageTk.PhotoImage(im)

root = tk.Tk()

label = tk.Label(root, image = tkim) # Here is the core problem (see text for explanation)
label.image = tkim # This is where we should keep the reference, right?
label.grid (row = 0, column = 0)

tk.Button(root, text = 'quit', command = lambda: sys.exit()).grid(row = 1, column = 1)
root.mainloop()

When we execute this code, it doesn't compile, giving an error:

(当我们执行此代码时,它不会编译,并给出一个错误:)

TclError: image "pyimage9" doesn't exist

When I define label without its parent root , No compilation error occurs, but the GUI does not display any image!

(当我定义不带其父root label时,不会发生编译错误,但是GUI不会显示任何图像!)

Can anyone identify what could be the issue?

(任何人都可以找出问题所在吗?)

  ask by Mithun Padmakumar translate from so

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

This problem happens when we attempt to run the above code in Ipython.

(当我们尝试在Ipython中运行以上代码时,会发生此问题。)

And it can be solved by changing the line

(可以通过换线来解决)

root = tk.Tk() to

root = tk.Toplevel()

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...