如何将图像加载到python 3.4 tkinter窗口?

Luk*_*son 4 python image tkinter python-3.x

我花了一些时间在线查看,到目前为止还没有找到任何可以解决这个问题而不使用PIL,我无法开始工作是否有其他方法可以做到这一点?

Bry*_*ley 12

tkinter有一个PhotoImage类,可用于显示GIF图像.如果你想要其他格式(除了相当过时的PGM/PPM格式),你需要使用像PIL或Pillow这样的东西.

import Tkinter as tk

root = tk.Tk()
image = tk.PhotoImage(file="myfile.gif")
label = tk.Label(image=image)
label.pack()
root.mainloop()
Run Code Online (Sandbox Code Playgroud)

重要的是要注意,如果将此代码移动到函数中,则可能会出现问题.上面的代码有效,因为它在全局范围内运行.使用函数,当函数退出时,图像对象可能会被垃圾收集,这将导致标签显示为空白.

有一个简单的解决方法(保存对图像对象的持久引用),但上述代码的要点是显示最简单的代码.

有关详细信息,请参阅此网页:为什么我的Tkinter图像没有出现?

  • 发现添加了一行,label.image = image,使图像显示为保持引用.这也适用于.png文件. (2认同)