图像未在 tkinter 中加载

问题描述 投票:0回答:2

我正在尝试在程序中显示文件中的图像。 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)

这是我的代码,它有点难看,我应该将它分开,但我更习惯这样格式化它。

python image tkinter
2个回答
1
投票

您需要创建对图像的引用,以防止垃圾收集器收集它,因为 PhotoImage 类本身没有创建对此对象的引用。

img = tk.PhotoImage(file="2C.png")
imgLabel = Label(root, image=img).pack()

0
投票

主要问题是 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)
© www.soinside.com 2019 - 2024. All rights reserved.