我正在尝试在程序中显示文件中的图像。 python 文件与我的图像文件位于同一文件夹中,并且文件名正确。当它显示在屏幕上时,图像应该在的位置被占用,但没有图像显示。
from tkinter import *
from PIL import ImageTk,Image
import tkinter as tk
cardImageLabel=Label(playerFrame, image=tk.PhotoImage(file="2C.png")).grid(row=1, column=0)
这是我的代码,它有点难看,我应该将它分开,但我更习惯这样格式化它。
您需要创建对图像的引用,以防止垃圾收集器收集它,因为 PhotoImage 类本身没有创建对此对象的引用。
img = tk.PhotoImage(file="2C.png")
imgLabel = Label(root, image=img).pack()
主要问题是 PhotoImage 对象需要存储为引用,否则即使 Label 尝试显示它,它也会被 Python 垃圾回收:
from tkinter import *
from PIL import ImageTk, Image
import tkinter as tk
# Create and store the PhotoImage as a reference
card_image = tk.PhotoImage(file="2C.png")
cardImageLabel = Label(playerFrame, image=card_image)
cardImageLabel.grid(row=1, column=0)