TKinter这个库十分强大,它其中还包括了后期更新的一个tkinter.ttk库这期我们不说别的,我们就来说说这其中在标签中插入一张图片,并将其显示到界面上
以下是一段代码,他看似并没有什么问题
import tkinter as tk
from tkinter import PhotoImage
def create_image_label(root, image_path):
label = tk.Label(root, image=PhotoImage(file=image_path) )
label.image = img
label.pack()
root = tk.Tk()
root.title("Tkinter 图片显示")
image_path = "./test.png" # 替换为你的图片路径
create_image_label(root, image_path)
root.mainloop()
但其实问题很大,当我们执行后,界面上是空的,啥也没有
这个时候重点来了,抓重点,抓重点,重要事情说三遍,不要懒,不要懒
label = tk.Label(root, image=PhotoImage(file=image_path) ) # 错
img_obj = PhotoImage(file=image_path) # 正确
label = tk.Label(root, image=img_obj)
如你所见,由于python的垃圾清理机制,他会误认为这是一个不要的变量,会把它清理掉,从而导致标签无法接收到图片数据
好了,又是解决问题的一天,拜拜